This is a live mirror of the Perl 5 development currently hosted at
25 years agotypo in lib/
Bruce Barnett [Fri, 11 Apr 1997 18:00:54 +0000 (14:00 -0400)]
typo in lib/


25 years agoAdd B<-o> option to a2p, for old awk; make new the default
Chip Salzenberg [Thu, 6 Mar 1997 15:48:20 +0000 (03:48 +1200)]
Add B<-o> option to a2p, for old awk; make new the default

25 years agoFix undef warning in Math::BigInt
Chip Salzenberg [Tue, 19 Nov 1996 00:07:25 +0000 (12:07 +1200)]
Fix undef warning in Math::BigInt

25 years agoComplex update (five patches)
Jarkko Hietaniemi [Wed, 9 Apr 1997 00:00:00 +0000 (00:00 +0000)]
Complex update (five patches)

25 years ago[dummy merge]
Chip Salzenberg [Wed, 9 Apr 1997 00:00:00 +0000 (00:00 +0000)]
[dummy merge]

This merge exists so that the p5p version of the patch and the applied
version are both in the history

25 years agoMM_Unix patch for use under CVS
Chip Salzenberg [Wed, 9 Apr 1997 00:00:00 +0000 (00:00 +0000)]
MM_Unix patch for use under CVS

(this is the same change as commit d3e8569c62819ccd17f9de64244d9bd181aa37b6, but as applied)

25 years agoMM_Unix patch for use under CVS
Ulrich Pfeifer [Fri, 11 Apr 1997 12:59:00 +0000 (14:59 +0200)]
MM_Unix patch for use under CVS

Subject: Re: MM_Unix patch

>>>>> "Nick" == Nick Ing-Simmons <> writes:

    Nick> Seems a little strong did you mean /^\.#/ ?

No. Every '#' in a Makefile file list will break the list:

 | FILES = foo \
 |         bar#bazz \
 |         bizz
 | all:
 |  @echo $(FILES)
 | % make -f ~/tmp/Makefile
 | foo bar

Below is a more complete patch.


25 years agoMinor type cleanup
Chip Salzenberg [Wed, 9 Apr 1997 00:00:00 +0000 (00:00 +0000)]
Minor type cleanup

25 years agoPut "dXSUB_SYS" last in declarations
Chip Salzenberg [Fri, 21 Mar 1997 02:50:39 +0000 (14:50 +1200)]
Put "dXSUB_SYS" last in declarations

25 years agoBefore 'BEGIN not safe', explain why
Chip Salzenberg [Wed, 9 Apr 1997 00:00:00 +0000 (00:00 +0000)]
Before 'BEGIN not safe', explain why

25 years agoupdate to 5.003_97b/hint/
Scott Henry [Sat, 12 Apr 1997 01:05:03 +0000 (18:05 -0700)]
update to 5.003_97b/hint/

It is possible with the 7.1 compilers for IRIX-6.2 and later to
change the default compiler options for the system.  You need to
explicitely select the compiler options in the hints file to avoid
mix-n-match ABI problems.  I also added some additional commentary...
Patch against 5.003_97b follows:


25 years agoFix label on C<for(;;)> statement
Chip Salzenberg [Thu, 6 Mar 1997 15:46:36 +0000 (03:46 +1200)]
Fix label on C<for(;;)> statement

25 years agoFix C< $x=''; pos($x)=0; $x=~/\G$/ >
Chip Salzenberg [Mon, 7 Apr 1997 00:00:00 +0000 (00:00 +0000)]
Fix C< $x=''; pos($x)=0; $x=~/\G$/ >

25 years ago[dummy merge]
Chip Salzenberg [Wed, 9 Apr 1997 00:00:00 +0000 (00:00 +0000)]
[dummy merge]

This merge exists so that the p5p version of the patch and the applied
version are both in the history

25 years agoFix for incorrect overloaded assignment
Chip Salzenberg [Wed, 9 Apr 1997 00:00:00 +0000 (00:00 +0000)]
Fix for incorrect overloaded assignment

(this is the same change as commit 9de372454b482d4516b3f3c85b686af8cb18d211, but as applied)

25 years agoFix for incorrect overloaded assignment
Ilya Zakharevich [Fri, 11 Apr 1997 22:25:33 +0000 (18:25 -0400)]
Fix for incorrect overloaded assignment

Subject: Re: overloading problem

Jarkko Hietaniemi writes:
> Please proofread for me. Isn't what Chris is trying to do
>  to get overloading to promote the unblessed scalar $c
>  containing '2' to a Math::Complex blessed object?
> Please correct me if I am wrong but isn't this impossible?
> As there are only three possibilities for binops: normally ordered
> arguments, inverted arguments, modifying binop: the overloading will
> swap the honest Math::Complex $z as the first argument _and_ pass the
> third argument to minus() as undef (perldoc overload) and therefore
>  a) the value of the result will be $z - $c, not $c - $z
>  b) minus() will modify $z, not $c
> I may just too sleepy...

Looks like an overeager optimization... Try this:


25 years ago[differences between cumulative patch application and perl-5.003_97c] perl-5.003_97c
Chip Salzenberg [Mon, 7 Apr 1997 00:00:00 +0000 (00:00 +0000)]
[differences between cumulative patch application and perl-5.003_97c]

25 years ago[inseparable changes from match from perl-5.003_97b to perl-5.003_97c]
Perl 5 Porters [Mon, 7 Apr 1997 00:00:00 +0000 (00:00 +0000)]
[inseparable changes from match from perl-5.003_97b to perl-5.003_97c]


Subject: Fix syntax error in Configure comment(!)
From: Chip Salzenberg <>
Files: Configure

Subject: For Solaris, if -DDEBUGGING, default to '-KPIC', not '-Kpic'
From: Chip Salzenberg <>
Files: Configure

Subject: Fix usage of dXSUB_SYS, esp. in ExtUtils::Miniperl
From: Chip Salzenberg <>
Files: dosish.h os2/os2ish.h plan9/plan9ish.h vms/vmsish.h


Subject: Refine setgroups() behavior of C<$)>
From: Chip Salzenberg <>
Files: mg.c pod/perldelta.pod pod/perlvar.pod

Subject: Forbid -[Mm] on #! line
From: Chip Salzenberg <>
Files: pod/perldelta.pod pod/perldiag.pod toke.c


Subject: Special mkdir() for VMS
Date: Tue, 08 Apr 1997 12:33:56 -0400 (EDT)
From: Charles Bailey <>
Files: dosish.h lib/ExtUtils/ lib/File/ os2/os2ish.h plan9/plan9ish.h pp_sys.c unixish.h vms/vms.c vms/vmsish.h

    (applied based on p5p patch as commit ebec1d4b2ca9c08d24035a369c7aa782aa058e66)


Subject: IO::Socket doc fix
Date: Tue, 08 Apr 1997 15:30:43 -0400
From: Roderick Schertler <>
Files: ext/IO/lib/IO/

    (applied based on p5p patch as commit 4a51304ce091cb6d1ccc9f25e11753bd7d985b32)


Subject: Replace Class::Template with improved Class::Struct
From: Jim Miner <>
Files: MANIFEST lib/Class/ lib/Class/ lib/File/ lib/Net/ lib/Net/ lib/Net/ lib/Net/ lib/Time/ lib/Time/ lib/Time/ lib/User/ lib/User/ pod/perldelta.pod pod/perlfaq7.pod pod/perlmod.pod pod/perltoot.pod

Subject: MakeMaker pathname patch
Date: Wed, 9 Apr 1997 20:08:23 +0100
From: Nick Ing-Simmons <>
Files: lib/ExtUtils/ lib/ExtUtils/

    (applied based on p5p patch as commit 9cbbd68ff8edc7de96e3471de49538d0b2b98173)

Subject: Fix configuration of new socket
From: Chip Salzenberg <>
Files: ext/IO/lib/IO/

25 years agoSpecial mkdir() for VMS
Charles Bailey [Tue, 8 Apr 1997 16:33:56 +0000 (12:33 -0400)]
Special mkdir() for VMS

Subject: Re: Make failures in perl5.003_96 on AXP/VMS 6.2

Henrik Tougaard <> wrote:
> When I try to build Perl 5.003_96 on my AXP:
>   DEC C V5.3-006 on OpenVMS Alpha V6.2-1H3
> I get the following error:

. . .

>   Writing Descrip.MMS for Fcntl
>   MMS
>   %MMS-F-GWKNOPRN, There are no known sources for the current target
>     [--.LIB].EXISTS.
>   %MMS-F-ABORT, For target [.LIB]FCNTL.PM, CLI returned abort status:
>     %X10EE8064.

That's a bug introduced with the win32 support in _94 -- it assumes
dirname($dir) will return the name of $dir's parent, not $dir itself.
I've appended a fix for that, and for a problem with the DECCRTL
mkdir() (doesn't like trailing '/') that gets me to a clean build
for _94.  complex.t fails -- runs out of memory after sucking down
around 70 MB, but I don't know whether it's a Perl bug or just
a pathological test.

I haven't got beyond _94 yet -- I've been swamped for the past couple
weeks, and it's going to get worse before it gets better :-/ -- but
I'll try to pick up the newer patches and test them as soon as I
can.  In the meantime, reports from other folks, doc updates (especially
for the installation instructions), etc. are most welcome. :-)


25 years agoIO::Socket doc fix
Roderick Schertler [Tue, 8 Apr 1997 19:30:43 +0000 (15:30 -0400)]
IO::Socket doc fix


25 years ago[dummy merge]
Chip Salzenberg [Mon, 7 Apr 1997 00:00:00 +0000 (00:00 +0000)]
[dummy merge]

This merge exists so that the p5p version of the patch and the applied
version are both in the history

25 years agoMakeMaker pathname patch
Nick Ing-Simmons [Wed, 9 Apr 1997 19:08:23 +0000 (20:08 +0100)]
MakeMaker pathname patch

Chip Salzenberg <> writes:

Can we have this please - it passes EXE_EXT to Makefile.


25 years agoAccommodate CodeBuilder variant of Machten 4.0.3
Chip Salzenberg [Mon, 7 Apr 1997 00:00:00 +0000 (00:00 +0000)]
Accommodate CodeBuilder variant of Machten 4.0.3

(this is the same change as commit f56dede6f0d67b2435681a318bccb04d4f017fbd, but as applied)

25 years agoAccommodate CodeBuilder variant of Machten 4.0.3
Dominic Dunlop [Tue, 8 Apr 1997 20:15:15 +0000 (22:15 +0200)]
Accommodate CodeBuilder variant of Machten 4.0.3

The following patch against _97b massages a couple of test files so that
CodeBuilder 1.0, a derivative of MachTen 4.0.3, passes all tests (except
lib/db-recno, due to an old DB library). The patch does three things:

1. Make op/stat.t test 35 look in /usr/bin for SUID files iff $^O has value
   'machten'.  (PowerBuilder has /bin directory, but it contains no SUID
   files.  Perl5 porters with reasonable memories may remember that the test
   got retargetted at /bin only in January.  Sigh.  A better fix than this
   quick hack is really required.)

2. Make op/stat.t test 39 check for value of $^O, succeeding if it's 'machten'.
   (PowerBuilder and other MachTen variants lack /MachTen directory, but
   all have a uname which says they're 'machten'.)

3. Amend io/fs.t test 25 so that it tests whether truncate can reduce the
   length of a file attached to a filehandle, mirroring test 23's check of
   whether truncate can reduce the length of a named file, rather than testing
   whether truncate can extend an empty file attched to a filehandle.  (See
   discussion below.)

NOTE IN PARTICULAR POINT 3: CodeBuilder is distinguished from MachTen 4.0.3
in supporting a true Berkeley Fast File System as an alternative to MacOS'
incredibly slow Heirarchical File System.  CodeBuilder's FFS code is
derived from 4.3BSD, and does not allow truncate() to extend a file's size.
The HFS code is derived from 4.4BSD, and does allow such extension.  (The
man page for truncate(2) has not, as far as I can tell, changed in a long
time, and has reather slippery wording: it's not clear whether extension is
allowed, and the system errors one might expect for failed extension --
ENOSPC and others -- are not mentioned.)  Looking at the io/fs.t, it seems
that a typo may have turned a check that the length of a file attached to a
handle can be reduced into a check that it can be extended.  The patch
"fixes" the test to check for length reduction.  If, on the other hand, it
should indeed be a test of extension (which, presumably, every other system
that supports truncate() passes) then io/fs.t should not be patched, and
CodeBuilder 1.0 pronounced buggy.

p5p-msgid: v03020902af704d320f27@[]

25 years agoFix typos in Math::Trig
Jarkko Hietaniemi [Mon, 7 Apr 1997 00:00:00 +0000 (00:00 +0000)]
Fix typos in Math::Trig

25 years 0**0 sanity
Jarkko Hietaniemi [Wed, 9 Apr 1997 18:04:23 +0000 (21:04 +0300)] 0**0 sanity


25 years agoImprove IO::Handle docs; don't export _open_mode_string
Chip Salzenberg [Wed, 5 Mar 1997 19:48:16 +0000 (07:48 +1200)]
Improve IO::Handle docs; don't export _open_mode_string

25 years agoFix assignment from magic SV that becomes a glob
Chip Salzenberg [Mon, 24 Mar 1997 15:51:51 +0000 (03:51 +1200)]
Fix assignment from magic SV that becomes a glob

25 years agoFix dynamic loading (and argv[0]) under AmigaOS
Norbert Pueschel [Tue, 8 Apr 1997 20:01:45 +0000 (22:01 +0200)]
Fix dynamic loading (and argv[0]) under AmigaOS


25 years ago[differences between cumulative patch application and perl-5.003_97b] perl-5.003_97b
Chip Salzenberg [Fri, 4 Apr 1997 00:00:00 +0000 (00:00 +0000)]
[differences between cumulative patch application and perl-5.003_97b]

25 years ago[inseparable changes from match from perl-5.003_97a to perl-5.003_97b]
Perl 5 Porters [Fri, 4 Apr 1997 00:00:00 +0000 (00:00 +0000)]
[inseparable changes from match from perl-5.003_97a to perl-5.003_97b]


Subject: Don't suggest 'Configure -der' in comments
From: Chip Salzenberg <>
Files: Configure


Subject: Make assignment to C<$)> call setgroups()
From: Chip Salzenberg <>
Files: Configure config_H config_h.SH mg.c plan9/config.plan9 pod/perldelta.pod vms/config.vms win32/config.H win32/config.w32

Subject: Grandfather "$$<digit>" in strings
From: Chip Salzenberg <>
Files: pod/perldiag.pod toke.c

Subject: Disconnect warn and die hooks _after_ object destruction
From: Chip Salzenberg <>
Files: perl.c

Subject: Forbid recursive substitutions
From: Chip Salzenberg <>
Files: cop.h pod/perldelta.pod pod/perldiag.pod pp_ctl.c pp_hot.c


Subject: Document required module versions
From: Chip Salzenberg <>
Files: pod/perldelta.pod


Subject: Updates to Math::Complex and Math::Trig
From: Jarkko Hietaniemi <>
Files: lib/Math/ lib/Math/ pod/perldelta.pod t/lib/complex.t


Subject: length($') isn't
Date: Mon, 07 Apr 1997 03:30:44 -0400
From: Gurusamy Sarathy <>
Files: mg.c

    (applied based on p5p patch as commit 645a7cbb1f14932f058231f0a4f808b88ebe8703)

Subject: Fix obscure regex bug related to leading C<.*>
From: Chip Salzenberg <>
Files: toke.c

Subject: Add warning for glob failure
From: Chip Salzenberg <>
Files: pod/perldelta.pod pod/perldiag.pod pp_hot.c

Subject: Fix C<perl -V> in presence of local patches
From: Chip Salzenberg <>
Files: perl.c

25 years agolength($') isn't
Gurusamy Sarathy [Mon, 7 Apr 1997 07:30:44 +0000 (03:30 -0400)]
length($') isn't

"foo" =~ /^./; print length $';

An ev0l typo that crept in via the 317th subversion. :-)


25 years agoMake L<perltrap> refer to L<perldelta>
Chip Salzenberg [Tue, 1 Apr 1997 20:54:23 +0000 (08:54 +1200)]
Make L<perltrap> refer to L<perldelta>

25 years agoDocument sample function perl_eval()
Doug MacEachern [Sat, 5 Apr 1997 15:24:43 +0000 (10:24 -0500)]
Document sample function perl_eval()

Tim, your comments have changed perl_eval() from a quick & dirty
example to something I'd like to see part of the Perl API, maybe
called perl_eval_pv though.


25 years agoPatch for 'perldoc -f'
Gisle Aas [Sun, 6 Apr 1997 17:32:04 +0000 (19:32 +0200)]
Patch for 'perldoc -f'


25 years agoFix FindBin under Win32, and document success
Nick Ing-Simmons [Sat, 5 Apr 1997 15:04:52 +0000 (16:04 +0100)]
Fix FindBin under Win32, and document success

Signed-off-by: Nick Ing-Simmons <>
25 years ago[dummy merge]
Chip Salzenberg [Fri, 4 Apr 1997 00:00:00 +0000 (00:00 +0000)]
[dummy merge]

This merge exists so that the p5p version of the patch and the applied
version are both in the history

25 years agoCGI->redirect patch
Chip Salzenberg [Fri, 4 Apr 1997 00:00:00 +0000 (00:00 +0000)]
CGI->redirect patch

(this is the same change as commit a3ec56f7f3704c7c711a382a2e558eb572cef265, but as applied)

25 years agoCGI->redirect patch
Doug MacEachern [Sat, 5 Apr 1997 15:27:52 +0000 (10:27 -0500)]
CGI->redirect patch

Mike Stok <> wrote:

> I am having an odd problem with a redirect using apacha & mod perl.
> #!/usr/local/register/bin/perl -w
> use CGI::Switch;
> my $q = new CGI::Switch;
> $q->print ($q->redirect (-uri => '',
>                          -nph => 1));
> as a "regular" cgi script works OK, but under mod_perl gets a "document
> contains no data" error out of the browser.  When under mod_perl I have
> the code in .../register/code/boing ans the httpd.conf file says
> Is there some simple mistake I'm making?  I'm using perl 5.003_95 and
> mod_perl 0.95_02 with apache 1.2b7 ... changing the versions fills me with
> terror as I'm < 24 hours away from a product roll out and the code works
> OK as CGI.

nuts, I should have done something about this a while ago.  See, CGI
reads your scripts output, scanning headers and such.  mod_perl does
not.  This patch should makes things behave as expected.


25 years agoperlwin-97a_4: win32 environ fix
Gurusamy Sarathy [Sun, 6 Apr 1997 04:31:11 +0000 (23:31 -0500)]
perlwin-97a_4: win32 environ fix


25 years agoUse SSize_t for values of PerlIO_{read,write}
Chip Salzenberg [Fri, 4 Apr 1997 00:00:00 +0000 (00:00 +0000)]
Use SSize_t for values of PerlIO_{read,write}

26 years ago[differences between cumulative patch application and perl-5.003_97a] perl-5.003_97a
Chip Salzenberg [Wed, 2 Apr 1997 22:03:25 +0000 (10:03 +1200)]
[differences between cumulative patch application and perl-5.003_97a]

26 years ago[inseparable changes from match from perl-5.003_97 to perl-5.003_97a]
Perl 5 Porters [Wed, 2 Apr 1997 22:03:25 +0000 (10:03 +1200)]
[inseparable changes from match from perl-5.003_97 to perl-5.003_97a]


Subject: Add support for Cygwin32 (GNU-Win32) -- very low impact
Date: Thu, 3 Apr 1997 09:21:17 +0100
From: John Cerney <>
Files: MANIFEST README.cygwin32 cygwin32/cw32imp.h cygwin32/gcc2 cygwin32/ld2 cygwin32/perlgcc cygwin32/perlld ext/DynaLoader/dl_cygwin32.xs hints/ perl.h pp_sys.c

    (applied based on p5p patch as commit 2a079e0090406b1b2e50643540f149206c9e9de8)

Subject: Win32 update (six patches)
From: Gurusamy Sarathy <>
Files: MANIFEST README.win32 dosish.h t/io/fs.t t/io/tell.t t/lib/io_tell.t t/op/magic.t t/op/mkdir.t t/op/runlevel.t t/op/stat.t t/op/taint.t win32/Makefile win32/VC-2.0/pod.mak win32/ win32/pod.mak win32/win32.c win32/win32.h win32/win32io.c win32/win32io.h win32/win32iop.h


Subject: Math::Trig, based on (and from an author of) Math::Complex
From: Chip Salzenberg <>
Files: MANIFEST lib/Math/ lib/Math/ pod/perldelta.pod t/lib/complex.t t/lib/trig.t


Subject: Fix const-sub-related panic on C<sub foo { my $x; 0 } foo>
From: Chip Salzenberg <>
Files: op.c

Subject: Fix warning for useless C<1..2>
From: Chip Salzenberg <>
Files: op.c

Subject: Minor cleanups
Date: Thu, 03 Apr 1997 19:56:57 -0500
From: Gurusamy Sarathy <>
Files: mg.c mg.h perl.c

    (applied based on p5p patch as commit 609794497049cf42bdd2396c04cbb7728e10374d)

Subject: Eliminate unreliable warning with %SIG and strict refs
From: Chip Salzenberg <>
Files: mg.c

Subject: Fix impossible test in vivification
From: Chip Salzenberg <>
Files: mg.c

26 years agoPatch to Build Dynamic-Lib (DLL) version of perl using gnuwin32 b17.1
John Cerney [Thu, 3 Apr 1997 08:21:17 +0000 (09:21 +0100)]
Patch to Build Dynamic-Lib (DLL) version of perl using gnuwin32 b17.1

I have successfully built a dynamic-lib (dll) version of perl version 5.003_94
using the gnuwin32 tools on windows 95 and windows NT 3.51. This port builds
all extension libs for perl as DLLs.

A patch is attached to this message.

Detailed Instructions:

The following assumes you have the gnuwin32 (version b17.1) package installed
and configured on your system. See for
details on the gnuwin32 package.

1) Obtain perl5.003_94 (from or CPAN) and extract
     to a directory on your system.

2) cd to the path where perl5.003_94 is installed. e.g, if you
   installed to /perl5.003_94, then cd to /perl5.003_94.

3) Apply this patch:
patch -p1 < dllpatch

  Note: If you have problems with the patch that comes with
     the gnuwin32 package, (I have had problems getting it to apply
     multiple patches in a single file) try the patch located
     Also, the files pp_sys.c and perl.h that the patch modifies must
     be in unix format. If your extraction utility (like winzip) converts
     to dos format, change the format of these files back before applying
     the patch.
5) Modify the ld2 script
   Change the PERLPATH variable to the location you extracted perl.
    for example, if you extracted perl to /perl5.003_94, change so
    the line looks like:

4) Copy the two scripts ld2, and gcc2 to a directory in your PATH
   environment variable. For example, copy to /bin, assuming /bin is
   in your PATH. (These two scripts ld2 and gcc2 are 'wrapper' scripts
   that encapsulate the multiple-pass dll building steps used by gnuwin32

5) Run the perl Configuration script as stated in the perl README file;
sh Configure
   select gnuwin32 at this prompt:
   First time through, eh?  I have some defaults handy for the following
   Which of these apply, if any?

   The defaults should be OK for everything else, except for the specific
pathnames for
   the gnuwin32 libs, include files, installation dirs, etc on your system.

   On windows 95, the configuration script only stops every other time
    for responses from the command line. In this case you can manually edit
    the hint file for your paths, copy hints/ to,
    and run Configure non-interactively using sh Configure -d.

6) Do a make, as stated in the perl README file

7) Do a make test. Some test will fail, but you should get around a
83% OK result. (Most failures seem to be due to unix'ism that
        don't apply for win32.)

8) Do a make install. This will fail about 1/2 of the way thru. It appears
that perl can't find itself when it forks because it cd's to another
        directory during the install process. You get around this by invoking
        the install script using a full pathname for perl. For example, if
perl is extracted to perl5.003_94, do a
'/perl5.003_94/perl installperl'. This should complete the install


26 years agoMinor cleanups
Gurusamy Sarathy [Fri, 4 Apr 1997 00:56:57 +0000 (19:56 -0500)]
Minor cleanups

This patch straightens out some code that used to be crooked,
avoids redundant SV allocs/frees, and makes a macro more
consistent.  Nothing critical here.

The changes in ENV_FETCH code are untested, so vox VMS populi


26 years agoPod style
Nathan Torkington [Wed, 2 Apr 1997 20:34:15 +0000 (08:34 +1200)]
Pod style

26 years agoUpdate INSTALL
Andy Dougherty [Sat, 29 Mar 1997 23:44:30 +0000 (11:44 +1200)]

26 years agoMake *dbm tests work with Win32
Chip Salzenberg [Mon, 24 Feb 1997 15:24:03 +0000 (03:24 +1200)]
Make *dbm tests work with Win32

26 years agoDon't use $4 when it might be undef
Chip Salzenberg [Tue, 18 Oct 1994 16:35:28 +0000 (04:35 +1200)]
Don't use $4 when it might be undef

26 years agoLimit @ISA to actual DBM in AnyDBM
Chip Salzenberg [Thu, 5 Sep 1996 21:14:21 +0000 (09:14 +1200)]
Limit @ISA to actual DBM in AnyDBM

26 years ago[dummy merge]
Chip Salzenberg [Wed, 2 Apr 1997 22:03:25 +0000 (10:03 +1200)]
[dummy merge]

This merge exists so that the p5p version of the patch and the applied
version are both in the history

26 years agoCPAN & TRL-Gnu
Chip Salzenberg [Wed, 2 Apr 1997 22:03:25 +0000 (10:03 +1200)]

(this is the same change as commit 8fe3829d7944eb627ee5360e65ca8f7afe76886d, but as applied)

26 years agoCPAN & TRL-Gnu
Achim Bohnet [Fri, 4 Apr 1997 08:09:03 +0000 (10:09 +0200)]


26 years agoUpdate AutoLoader and docs; support C<use AutoLoader 'AUTOLOAD'>
Chip Salzenberg [Fri, 29 Nov 1996 16:14:12 +0000 (04:14 +1200)]
Update AutoLoader and docs; support C<use AutoLoader 'AUTOLOAD'>
Signed-off-by: Chip Salzenberg <>
26 years agoRe: shared lib compilation problem with miniperl5.003_97
Andy Dougherty [Fri, 4 Apr 1997 18:02:23 +0000 (13:02 -0500)]
Re: shared lib compilation problem with miniperl5.003_97

On Fri, 4 Apr 1997, Chip Salzenberg wrote:

> According to Olaf Seibert:
> > In this report I am using the shared perl library,
> >
> > When building miniperl, it is linked with instead of
> > -lperl. This slightly confuses NetBSD's shared loader. When miniperl
> > is run from a directory where is not present, it
> > will fail to start.
> >
> > Fix: I think this should do it: Change in the Makefile
> > to
> >    LLIBPERL= -lperl
> Porters?  I'm a bit out of my depth with this, since I'm not sure
> of what's portable with dynamic loading and what isn't.

My paranoid fear is the following:  Suppose you already have
perl5.003_97 installed somewhere and it has a corresponding installed in the appropriate directory.  Now suppose
you're rebuiding perl5.003_97 (e.g. to test a patch or whatever) and
your new ./perl is linked with the moral equivalent of

cc -o perl -R $archlib -lperl [...]

Now, when you're down in the t/ library running your tests, and miniperl
gets called, which do you get -- the new one found via
LD_LIBRARY_PATH or the old one found via the -R directive?

(This is very similar to the shared libperl/debugging problem discussed in
the INSTALL file.)

I don't think any solution is bulletproof.  I suspect that the suggested
change probably won't make matters any worse, but I'm wary at this stage
(gee, that's a suprise from me:-)

Instead, I think the following should probably be safe:

private-msgid: Pine.SOL.3.95q.970404124326.647K-100000@fractal.lafayette.ed

26 years agorunlevel is I32, not int
Roderick Schertler [Thu, 3 Apr 1997 23:23:43 +0000 (18:23 -0500)]
runlevel is I32, not int


26 years agoAmigaOS update
Norbert Pueschel [Thu, 3 Apr 1997 14:16:51 +0000 (16:16 +0200)]
AmigaOS update


26 years agoFix AUTOLOAD, or kill me
Chip Salzenberg [Wed, 2 Apr 1997 22:03:18 +0000 (10:03 +1200)]
Fix AUTOLOAD, or kill me

26 years ago[differences between cumulative patch application and perl-5.003_97] perl-5.003_97
Chip Salzenberg [Tue, 1 Apr 1997 00:01:35 +0000 (12:01 +1200)]
[differences between cumulative patch application and perl-5.003_97]

26 years ago[inseparable changes from match from perl-5.003_96 to perl-5.003_97]
Perl 5 Porters [Tue, 1 Apr 1997 00:01:35 +0000 (12:01 +1200)]
[inseparable changes from match from perl-5.003_96 to perl-5.003_97]


Subject: Reenable but deprecate inherited AUTOLOAD for plain funcs
From: Chip Salzenberg <>
Files: ext/DynaLoader/ gv.c lib/Text/ pod/perldelta.pod pod/perldiag.pod t/op/method.t


Subject: Win32 update
Date: Wed, 02 Apr 1997 01:08:09 -0500
From: Gurusamy Sarathy <>
Files: win32/VC-2.0/modules.mak win32/VC-2.0/perl.mak win32/VC- 2.0/perldll.mak win32/perl.mak

    (applied based on p5p patch as commit 8d0ff1118aaee510902477e928a660803304346c)


Subject: Clean up some poddities, and make C<make html> work again
From: Chip Salzenberg <>
Files: pod/Makefile pod/perldelta.pod pod/perldiag.pod pod/perlfaq8.pod pod/perlfunc.pod pod/perlop.pod pod/perltrap.pod

Subject: Eliminate pod warnings in libs
From: Chip Salzenberg <>
Files: lib/ lib/ExtUtils/


Subject: Eliminate warning in
From: Chip Salzenberg <>
Files: lib/


Subject: Introduce and use gv_fetchmethod_autoload()
From: Chip Salzenberg <>
Files: global.sym gv.c pod/perlguts.pod proto.h universal.c

26 years agoWin32 update
Gurusamy Sarathy [Wed, 2 Apr 1997 06:08:09 +0000 (01:08 -0500)]
Win32 update

The win32 make fails because it cannot find "camel.ico".

Even if I add a camel.ico stolen from elsewhere, the build
fails due to lack of "resource.h" referenced in "perl.rc"
(when using VC++ 2.0).

The following patch simply disables binding the icon resource
into perl.exe.  (One can always associate a bare *.ico file
to any executable, so it's not like it *has* to be bound
into perl.exe when building it.)


26 years ago[dummy merge]
Chip Salzenberg [Tue, 1 Apr 1997 00:01:35 +0000 (12:01 +1200)]
[dummy merge]

This merge exists so that the p5p version of the patch and the applied
version are both in the history

26 years agoFix MM doc's use of "SUPER::"
Chip Salzenberg [Tue, 1 Apr 1997 00:01:35 +0000 (12:01 +1200)]
Fix MM doc's use of "SUPER::"

(this is the same change as commit acce7d4e04d89207299003c3e80c69d50bc82069, but as applied)

26 years agoFix MM doc's use of "SUPER::"
Jim Avera [Tue, 1 Apr 1997 22:35:26 +0000 (14:35 -0800)]
Fix MM doc's use of "SUPER::"

Chip Salzenberg <> wrote:
] According to Jim Avera:
] > Was there any resolution of the problem using SUPER:: with MakeMaker?
] Yes.  Don't say "sub MY::foo {}"; say "package MY; sub foo {}".
] The current package is important for proper operation of SUPER::.

Thanks for your help.  I appreciate it.
Here is a patch to fix the documentation (in 5.003_95).


26 years agoImprove heuristics for pod2man titles
Roderick Schertler [Wed, 2 Apr 1997 04:41:55 +0000 (23:41 -0500)]
Improve heuristics for pod2man titles

Subject: Re: Strange headers from perldoc

On Mon, 31 Mar 1997 16:02:59 +0100, "M.J.T. Guy" <> said:
> When I go  "perldoc CPAN" (in perl5.003_94 as it happens), the header
> lines come out as
> ::home::mjtg::pUser Contr::home::mjtg::perl5.003_94::lib::CPAN(3)

Here's a fix for that.  It's just more heuristics, so it isn't perfect.

In a related vein, this still leaves

    Getopt::Long(3pUser Contributed Perl DocumentatiGetopt::Long(3pm)

in the page header on my system.  "User Contributed Perl Documentation"
is just too long.  Would anybody mind replacing this with something
shorter?  Say

    Getopt::Long(3pm)         User Perl Docs        Getopt::Long(3pm)


    Getopt::Long(3pm)      Wankel Rotary Engine     Getopt::Long(3pm)

or even

    Getopt::Long(3pm)                               Getopt::Long(3pm)

I'm partial the last of these, myself, but I'd be happy with anything
less than about 20 characters.  Patch happily supplied if nobody


26 years ago[dummy merge]
Chip Salzenberg [Tue, 1 Apr 1997 00:01:35 +0000 (12:01 +1200)]
[dummy merge]

This merge exists so that the p5p version of the patch and the applied
version are both in the history

26 years agoDocument eval vs. sub in Benchmark
Chip Salzenberg [Tue, 1 Apr 1997 00:01:35 +0000 (12:01 +1200)]
Document eval vs. sub in Benchmark

(this is the same change as commit 446534a1e286d6fde0fd79424865d3cf1291546b, but as applied)

26 years agoDocument eval vs. sub in Benchmark
Hugo van der Sanden [Tue, 1 Apr 1997 22:31:55 +0000 (23:31 +0100)]
Document eval vs. sub in Benchmark

Subject: Re: Patch for

In <>, Tim Bunce writes:
:Simple: calling functions in perl is expensive.
Yeah, I simply hadn't expected it to be *that* expensive.

:> - ? "sub { package $pack; my(\$_i)=$n; while (\$_i--){&\$c;} }"
:> + ? "sub { package $pack; my(\$_i)=$n; while (\$_i--){&\$c();} }"
:It's cheaper to _not_ add () so I'd recommend leaving it off.
I considered that, but felt it was more correct not to pass through the
parameters that were received. My new patch ducks it, by shifting @_
out before it gets there.

I also looked at having two caches for empty string/empty sub timings,
but was unable to get satisfactory results. I'll come back to that one,
but I don't think it is urgent for 5.004.

This patch is for the in _96: it repeats stuff from my
previous patch, but avoids stuff that was obsoleted by other changes
in _96.


26 years agoTweaks to
Tom Phoenix [Tue, 1 Apr 1997 05:10:14 +0000 (21:10 -0800)]
Tweaks to

I've made a couple of (trivial) changes, in this compared to what was
distributed in _96. Patch available separately. Cape does not actually
enable wearer to fly.

26 years agoEliminate warnings in File::Basename
Robin Barker [Tue, 1 Apr 1997 11:11:43 +0000 (12:11 +0100)]
Eliminate warnings in File::Basename

./perl -w t/lib/basename.t
gives some warnings.


26 years agoFix POSIX::raise()
Jens T. Berger Thielemann [Tue, 1 Apr 1997 13:34:47 +0000 (15:34 +0200)]
Fix POSIX::raise()

[editor's note: Chip credited Jens with the fix, but the message
doesn't have a patch.  *shrug*]


26 years agoUpdate $VERSION of ExtUtils::Embed to reflect reality
Chip Salzenberg [Sat, 29 Mar 1997 23:46:06 +0000 (11:46 +1200)]
Update $VERSION of ExtUtils::Embed to reflect reality

26 years agoRefresh ExtUtils::Manifest to 1.33
Andreas Koenig [Fri, 7 Mar 1997 13:12:26 +0000 (01:12 +1200)]
Refresh ExtUtils::Manifest to 1.33

26 years agoRefresh CPAN to 1.24
Andreas Koenig [Mon, 17 Feb 1997 23:59:13 +0000 (11:59 +1200)]
Refresh CPAN to 1.24

26 years agoRemove target before link() of perldiag.pod
Chip Salzenberg [Sat, 29 Mar 1997 23:46:57 +0000 (11:46 +1200)]
Remove target before link() of perldiag.pod

26 years ago[dummy merge]
Chip Salzenberg [Tue, 1 Apr 1997 00:01:35 +0000 (12:01 +1200)]
[dummy merge]

This merge exists so that the p5p version of the patch and the applied
version are both in the history

26 years agoReduce memory footprint of literal strings
Chip Salzenberg [Tue, 1 Apr 1997 00:01:35 +0000 (12:01 +1200)]
Reduce memory footprint of literal strings

(this is the same change as commit 1bd69d1d0fa002def016e601cb71bfcd93600bd3, but as applied)

26 years agoReduce memory footprint of literal strings
Ilya Zakharevich [Tue, 1 Apr 1997 16:34:37 +0000 (11:34 -0500)]
Reduce memory footprint of literal strings

Subject: Fix for memory allocation on 'string'

Currently qq/a/ takes 2/3 of memory of "a" or 'a'. Test with

> env PERL_DEBUG_MSTATS=2 perl -e '$#a=10000; $a[$i] = qq// while $i++ <10000'

Memory allocation statistics after compilation: (buckets 8..8192)
   17552 free:     0     9    24    16    16   3   1     2   1 0 1
   43888 used:     0   119   232   176    16   5   3    10   0 0 1
Total sbrk():    61800. Odd ends: sbrk():     360, malloc():       0 bytes.
Memory allocation statistics after execution:   (buckets 8..65536)
   17136 free:     0   121    21    15    16   3   1     0   1 0 1 0 0 0
  515344 used:     0 10119   235   177    16   5   3   250   0 0 1 0 0 1
Total sbrk():   532840. Odd ends: sbrk():     360, malloc():       0 bytes.

> env PERL_DEBUG_MSTATS=2 perl -e '$#a=10000; $a[$i] = "a" while $i++ <10000'

Memory allocation statistics after compilation: (buckets 8..8192)
   17520 free:     0     9    23    16    16   3   1     2   1 0 1
   43920 used:     0   119   233   176    16   5   3    10   0 0 1
Total sbrk():    61800. Odd ends: sbrk():     360, malloc():       0 bytes.
Memory allocation statistics after execution:   (buckets 8..65536)
   17616 free:     0   121     4    15    16   3   1     1   1 0 1 0 0 0
  713520 used:     0 10119 10236   177    16   5   3   131   0 0 1 0 0 1
Total sbrk():   731496. Odd ends: sbrk():     360, malloc():       0 bytes.

The following patch fixes it:


26 years agoDon't use a completely empty macro parameter
Chip Salzenberg [Sat, 29 Mar 1997 23:48:07 +0000 (11:48 +1200)]
Don't use a completely empty macro parameter

26 years agoImprove definition of Sock_size_t
Chip Salzenberg [Sun, 30 Mar 1997 03:38:21 +0000 (15:38 +1200)]
Improve definition of Sock_size_t

26 years agoDon't use setjmp() and longjmp() in complex exprs
Chip Salzenberg [Mon, 31 Mar 1997 06:38:42 +0000 (18:38 +1200)]
Don't use setjmp() and longjmp() in complex exprs

26 years ago[differences between cumulative patch application and perl-5.003_96] perl-5.003_96
Chip Salzenberg [Tue, 25 Mar 1997 19:04:34 +0000 (07:04 +1200)]
[differences between cumulative patch application and perl-5.003_96]

26 years ago[inseperable changes from patch from perl-5.003_95 to perl-5.003_86]
Perl 5 Porters [Tue, 25 Mar 1997 19:04:34 +0000 (07:04 +1200)]
[inseperable changes from patch from perl-5.003_95 to perl-5.003_86]

[editor's note: this commit was prepared manually so may differ in
minor ways to other inseperable changes commits]


  Title:  "Support $ENV{PERL5OPT}"
   From:  Chip Salzenberg
  Files:  perl.c pod/perldiag.pod pod/perldelta.pod pod/perlrun.pod

  Title:  "Implement void context, in which C<wantarray> is undef"
   From:  Chip Salzenberg
  Files:  cop.h doop.c dump.c global.sym gv.c op.c op.h perl.c
          pod/perlcall.pod pod/perldelta.pod pod/perlfunc.pod
          pod/perlguts.pod pod/perlsub.pod pp.c pp_ctl.c pp_hot.c
          pp_sys.c proto.h

  Title:  "Don't look up &AUTOLOAD in @ISA when calling plain function"
   From:  Chip Salzenberg
  Files:  global.sym gv.c lib/Text/ pod/perldelta.pod
          pp_hot.c proto.h t/op/method.t

  Title:  "Allow closures to be constant subroutines"
   From:  Chip Salzenberg
  Files:  op.c

  Title:  "Make C<scalar(reverse)> mean C<scalar(reverse $_)>"
   From:  Chip Salzenberg
  Files:  pp.c

  Title:  "Fix lexical suicide from C<my $x = $x> in sub"
   From:  Chip Salzenberg
  Files:  op.c

  Title:  "Make "Unrecog. char." fatal, and update its doc"
   From:  Chip Salzenberg
  Files:  pod/perldiag.pod toke.c


  Title:  "safefree() mismatch"
   From:  Roderick Schertler
 Msg-ID:  <>
   Date:  Sat, 29 Mar 1997 11:36:21 -0500
  Files:  util.c

    (applied based on p5p patch as commit id 9b9b466fb02dc96c81439bafbb3b2da55238cfd2)

  Title:  "Win32 update (seven patches)"
   From:  Gurusamy Sarathy and Nick Ing-Simmons
  Files:  EXTERN.h MANIFEST win32/Makefile win32/perl.mak
          win32/perl.rc win32/perldll.mak win32/
          win32/modules.mak win32/win32io.c win32/bin/pl2bat.bat


  Title:  "Report PERL* environment variables in -V and perlbug"
   From:  Chip Salzenberg
  Files:  perl.c utils/perlbug.PL

  Title:  "Typo in perl.c: Printing NO_EMBED for perl -V"
   From:  Gisle Aas
 Msg-ID:  <>
   Date:  Sun, 30 Mar 1997 21:22:11 +0200
  Files:  perl.c

    (applied based on p5p patch as commit id b6c639e4b1912ad03b9b10ba9518d96bd0a6cfaf)

  Title:  "Don't let C<$var = $var> untaint $var"
   From:  Chip Salzenberg
  Files:  pp_hot.c pp_sys.c sv.h t/op/taint.t

  Title:  "Fix autoviv bug in C<my $x; ++$x->{KEY}>"
   From:  Chip Salzenberg
  Files:  pp_hot.c

  Title:  "Re: 5.004's new srand() default seed"
   From:  Hallvard B Furuseth
 Msg-ID:  <>
   Date:  Mon, 31 Mar 1997 00:19:13 +0200 (MET DST)
  Files:  pp.c

    (applied based on p5p patch as commit id d7d933a26349f945f93b2f0dbf85b773d8ca3219)

  Title:  "Re: embedded perl and top_env problem "
   From:  Gurusamy Sarathy
 Msg-ID:  <>
   Date:  Thu, 27 Mar 1997 19:31:42 -0500
  Files:  gv.c interp.sym perl.c perl.h pp_ctl.c pp_sys.c scope.h util.c

    (applied based on p5p patch as commit id f289f7d2518e7a8a82114282e774adf50fa6ce85)

  Title:  "Define and use new macro: boolSV()"
   From:  Tim Bunce
  Files:  gv.c lib/ExtUtils/typemap os2/os2.c pp.c pp_hot.c pp_sys.c
          sv.c sv.h universal.c vms/vms.c

  Title:  "Re: strict @F"
   From:  Hallvard B Furuseth
 Msg-ID:  <>
   Date:  Tue, 25 Mar 1997 22:10:33 +0100 (MET)
  Files:  toke.c

    (applied based on p5p patch as commit id dfd44a5c8c8dd4c001c595debfe73d011a96d844)

  Title:  "Try harder to identify errors at EOF"
   From:  Chip Salzenberg
  Files:  toke.c

  Title:  "Minor string change in toke.c: 'bareword'"
 Msg-ID:  <>
   Date:  Thu, 27 Mar 1997 13:02:46 -0500 (EST)
  Files:  toke.c

    (applied based on p5p patch as commit id 9b56c8f8085a9e773ad87c6b3c1d0b5e39dbc348)

  Title:  "Improve diagnostic on \r in program text"
   From:  Chip Salzenberg
  Files:  pod/perldiag.pod toke.c

  Title:  "Make Sock_size_t typedef work right"
   From:  Chip Salzenberg
  Files:  perl.h pp_sys.c


  Title:  "New module"
   From:  Tom Phoenix
  Files:  MANIFEST lib/ op.c pp.c t/pragma/constant.t

  Title:  "Remove chat2"
   From:  Chip Salzenberg
  Files:  MANIFEST lib/chat2.inter lib/

  Title:  "Include 2.32"
   From:  Chip Salzenberg
  Files:  MANIFEST eg/cgi/* lib/ lib/CGI/
          lib/CGI/ lib/CGI/ lib/CGI/


  Title:  "Tom C's Pod::Html and html tools, as of 30 March 97"
   From:  Chip Salzenberg
  Files:  MANIFEST installhtml lib/Pod/ pod/pod2html.PL

  Title:  "Fix path bugs in installhtml"
   From:  Robin Barker <>
 Msg-ID:  <>
   Date:  Thu, 27 Mar 97 09:06:14 GMT
  Files:  installhtml

  Title:  "Make perlbug say that it's only for core Perl bugs"
   From:  Chip Salzenberg
  Files:  utils/perlbug.PL


  Title:  "Document autouse and constant; update diagnostics"
   From:  Chip Salzenberg
  Files:  pod/perldelta.pod

  Title:  "Suggest to upgraders that they try '-w' again"
   From:  Hallvard B Furuseth
 Msg-ID:  <>
   Date:  Tue, 25 Mar 1997 20:01:26 +0100 (MET)
  Files:  pod/perldelta.pod

    (applied based on p5p patch as commit id 4176c059b9ba6b022e99c44270434a5c3e415b73)

  Title:  "Improve and update documentation of constant subs"
   From:  Tom Phoenix <>
 Msg-ID:  <>
   Date:  Mon, 31 Mar 1997 13:05:54 -0800 (PST)
  Files:  pod/perlsub.pod

  Title:  "Improve documentation of C<return>"
   From:  Chip Salzenberg
  Files:  pod/perlfunc.pod pod/perlsub.pod

  Title:  "perlfunc.pod patch"
   From:  Gisle Aas
 Msg-ID:  <>
   Date:  Wed, 26 Mar 1997 22:59:23 +0100
  Files:  pod/perlfunc.pod

    (applied based on p5p patch as commit id 35a731fcbcd7860eb497d6598f3f77b8746319c4)

  Title:  "Use 'while (defined($x = <>)) {}', per <>"
   From:  Chip Salzenberg
  Files:  configpm lib/Term/ perlsh pod/perlipc.pod pod/perlop.pod
          pod/perlsub.pod pod/perlsyn.pod pod/perltrap.pod
          pod/perlvar.pod win32/bin/search.bat

  Title:  "Document and test C<%> behavior with negative operands"
   From:  Chip Salzenberg
  Files:  pod/perlop.pod t/op/arith.t

  Title:  "Update docs on $]"
   From:  Chip Salzenberg
  Files:  pod/perlvar.pod

  Title:  "perlvar.pod patch"
   From:  Gisle Aas
 Msg-ID:  <>
   Date:  Wed, 26 Mar 1997 13:54:00 +0100
  Files:  pod/perlvar.pod

    (applied based on p5p patch as commit id 0aa182cb0caa3829032904b9754807b1b7418509)

  Title:  "Fix example of C<or> vs. C<||>"
   From:  Chip Salzenberg
  Files:  pod/perlsyn.pod

  Title:  "Pod usage and spelling patch"
   From:  Larry W. Virden
  Files:  pod/*.pod

  Title:  "Pod updates"
   From:  "Cary D. Renzema" <>
 Msg-ID:  <>
   Date:  Wed, 26 Mar 1997 15:53:22 -0800 (PST)
  Files:  pod/*.pod

    (applied based on p5p patch as commit id 5695b28edc67a3f45e8a0f25755d07afef3660ac)

26 years agoPod updates
Cary D. Renzema [Wed, 26 Mar 1997 23:53:22 +0000 (15:53 -0800)]
Pod updates

Here are some fixes for the pod files.

p5p-msgid: <>

26 years agoperlvar.pod patch
Gisle Aas [Wed, 26 Mar 1997 12:54:00 +0000 (13:54 +0100)]
perlvar.pod patch


26 years ago[dummy merge]
Chip Salzenberg [Tue, 25 Mar 1997 19:04:34 +0000 (07:04 +1200)]
[dummy merge]

This merge exists so that the p5p version of the patch and the applied
version are both in the history

26 years agoperlfunc.pod patch
Gisle Aas [Wed, 26 Mar 1997 21:59:23 +0000 (22:59 +0100)]
perlfunc.pod patch

This patch contains various minor corrections and improvements to the
perl5.003_95 perlfunc POD text:


26 years agoPatch for perl.pod
Chip Salzenberg [Tue, 25 Mar 1997 19:04:34 +0000 (07:04 +1200)]
Patch for perl.pod

(this is the same change as commit 69cddaa00596e831c0492189df41823d75a1b069, but as applied)

26 years agoPatch for perl.pod
William Middleton [Wed, 26 Mar 1997 23:05:39 +0000 (15:05 -0800)]
Patch for perl.pod

This didn't make it into 95.

p5p-msgid: 199703262305.PAA13121@ducks

26 years agoSuggest to upgraders that they try '-w' again
Hallvard B Furuseth [Tue, 25 Mar 1997 19:01:26 +0000 (20:01 +0100)]
Suggest to upgraders that they try '-w' again

Tom Christiansen wrote:

>>-w is removed from a lot of installed scripts, to
>>get rid of annoying warnings about legitimate code.
> Hm... I kinda think this is a bad idea. If there are too
> many warnings, something should be fixed.  Historically,
> -w has at time been too noisy, and we've fixed it.

Right.  Let's add a note somewhere (perlrun? perldelta? INSTALL?):


26 years ago[dummy merge]
Chip Salzenberg [Tue, 25 Mar 1997 19:04:34 +0000 (07:04 +1200)]
[dummy merge]

This merge exists so that the p5p version of the patch and the applied
version are both in the history

26 years agoMinor string change in toke.c: 'bareword'
Larry W. Virden [Thu, 27 Mar 1997 18:02:46 +0000 (13:02 -0500)]
Minor string change in toke.c: 'bareword'

The only place I found in all of perl 5.003095 that used the phrase
"Bare word" instead of "bareword" or "Bareword" was here:


26 years agoINSTALL-1.11
Chip Salzenberg [Tue, 25 Mar 1997 19:04:34 +0000 (07:04 +1200)]

(this is the same change as commit a5d126c22eb526701c899be27a05a7d0d93dff97, but as applied)

26 years agoINSTALL-1.11
Andy Dougherty [Wed, 26 Mar 1997 19:27:52 +0000 (14:27 -0500)]

On March 25, I wrote:

> I'll try to take various comments into account and eliminate unnecessary
> markup in INSTALL.  (I will, however, leave in what I consider to be
> necessary or useful markup.)

Here's a patch to bring you version 1.11 of the INSTALL file.  This patch
is relative to the version in 5.003_95.

By far the biggest part of the patch is removing unnecessary markup in the
file.  There actually wasn't all that much anyway, but most of it wasn't
necessary for clarity, so I just removed it.  There are now just 13 uses
of C<> and B<>.  (These too are debatable, but I have no interest in
debating them.  I've already decided to keep them for now.)

I've included Chip's suggestion about 'splain and and added
a little more info about the pod format.

There are also some minor rewordings here and there, all aiming to enhance
clarity.  I hope it didn't regress instead :-)

At this point, I don't see any reason to include a separate INSTALL.txt
version in the distribution.  If we want to


I won't argue much against it.


26 years agoRe: strict @F
Hallvard B Furuseth [Tue, 25 Mar 1997 21:10:33 +0000 (22:10 +0100)]
Re: strict @F

According to Chip Salzenberg:

>        sprintf( tmpbuf1, "@F=split('%s');", splitstr );

Oh, that reminds me:  Splits like  perl -F"/"  and  perl -F",'"  fail.
Of course, these might be considered user errors since they conflict
with the -F doc.  However, the -F doc is incorrect anyway: It says that
the pattern will be quoted unless it is *surrounded* by the delimiter.
Perl uses quotes if it *starts* with the delimiter.  Which is sometimes
better because it allows options: -F/foo/i.

Anyway, here is a fix. 1st part allows things like `-F/' according to
the doc.  2nd part, if you want it, (attempts to) allow -F",'" in
conflict with the doc, which implies -F",'" is an error.

BTW, note that it's too late to obey the current doc exactly.
That would forbid options (-F/foo/i) or expressions (-F'"" + $i++').
Currently, these work - and might be in use somewhere.


26 years agoTiny doc fix for
Randy J. Ray [Thu, 27 Mar 1997 21:17:38 +0000 (14:17 -0700)]
Tiny doc fix for

Seems that the C<.al> construct by itself causes pod2man to lose about half of
the line, which confuses the explanation of the argument in question:


26 years agoRe: embedded perl and top_env problem
Gurusamy Sarathy [Fri, 28 Mar 1997 00:31:42 +0000 (19:31 -0500)]
Re: embedded perl and top_env problem

On Mon, 24 Mar 1997 17:29:29 EST, Ken Fox wrote:
>Gurusamy Sarathy wrote:
>> >> Ken Fox wrote:
>> >> > The trouble with die happens in the longjmp to top_env ...
>> Testcase?
>Here's a good example that demonstrates both of my longjmp related
>problems.  I'm using 5.003_94 on Solaris 2.5.1 (more info at
>bottom).  I think that the perl_call_* API is being used correctly.
>---------------------------------------- BEGIN crash.c
>#include <EXTERN.h>
>#include <perl.h>
>static PerlInterpreter *my_perl;
>int call_sub(SV *sub)
>    int result = -1;
>    int count;
>    dSP;
>    ENTER;
>    PUSHMARK(sp);
>    XPUSHs(sv_2mortal(newSViv(1)));
>    count = perl_call_sv(sub, G_SCALAR);
>    if (count == 1) result = POPi;
>    LEAVE;
>    return result;
>int main(int argc, char *argv[], char *envp[])
>    char *perl_args[] = { 0, "-e",
>              "sub ok { $_[0] + 1; } sub crash { die 'crash\n'; }", 0 };
>    my_perl = perl_alloc();
>    perl_construct(my_perl);
>    perl_parse(my_perl, 0, 3, perl_args, 0);
>    perl_run(my_perl);
>    /* this call works fine -- no error */
>    printf("   sub ok: return = %d\n", call_sub((SV *)perl_get_cv("ok", FALSE)));
>    /* this call eventually inokes die() which mangles the C stack with long jump */
>    printf("sub crash: return = %d\n", call_sub((SV *)perl_get_cv("crash", FALSE)));
>    /* this call is bogus but perl mangles the C stack with long jump trying to
>       tell me about it. */
>    printf(" sv_undef: return = %d\n", call_sub(&sv_undef));
>    perl_destruct(my_perl);
>    perl_free(my_perl);
>    return 0;
>---------------------------------------- END crash.c
>I don't expect either of these cases to trap the error and go on -- I'd
>have used G_EVAL to do that.  What I do expect is that the C stack isn't
>scrambled when the error occurs -- that makes it virtually impossible to
>catch in a debugger:

Here's a patch for the above problem, which is symptomatic of larger
problems with perl_call_*() calls that happen outside perl_run() or
perl_parse().  Perl invokes longjmp() without checking if an associated
setjmp() exists.  This is likely to cause coredumps galore for all the
perl embedfellows out there.

Note the size of this patch is mostly due to the conversion of the
DOCATCH() business to macros in order to give it a semblance of
order.  It also does away with redundant calls to setjmp() (the
:restart branch in perl_call_sv()), and uses the C stack instead of

I finished this patch yesterday, and gave it a day with my production
embeded app, so I'm fairly sure it don't have no bugs. :-)


26 years ago[dummy merge]
Chip Salzenberg [Tue, 25 Mar 1997 19:04:34 +0000 (07:04 +1200)]
[dummy merge]

This merge exists so that the p5p version of the patch and the applied
version are both in the history

26 years agoRe: 5.004's new srand() default seed
Hallvard B Furuseth [Sun, 30 Mar 1997 22:19:13 +0000 (00:19 +0200)]
Re: 5.004's new srand() default seed

In the remote past, Roderick Schertler wrote:
> I posted a message to clpm asking for comments on Perl's new srand()
> default seed and Dean Inada replied.  Here are his observations.  I'm
> just a conduit, would somebody who knows what they're talking about
> please step in?

Sorry to be late:

I believe I'm the one who inserted the new code.  I browse clpm very
infrequently - and skip large parts of p5p too, for that matter.

I'll freely admit it's not particularly well tuned.  Since I don't know
much about randomness, anyone who do could do a better job, and I
suggested (on p5p) that someone might give it a try.  My change was just
to grab a few more garbage values (pointer addresses, time & pid) and
multipliers that shold at least never produce worse results than the
original code.

The multipliers
 - are prime numbers, just in case that makes a difference:-)
 - have few 1 bits at the beginning in binary, to distribute values
   varying in a small range "not worse than the old version did",
   or something like that.  I don't quite remember.

If you improve it, just remember:

 - *every* input value (time, pid & so on) may vary within a very narrow
   range and/or with a constant multiplier in some instances - or not
   vary at all.
 - cast things to a "large enough" unsigned and to avoid overflow
   exception and/or warning on some compilers.  And don't trust a
   variable/function to be unsigned just because some standard says
   that it should be.

>> Using ^ here seems pretty silly.  It again invites identical seeds
>> every 1000001 microseconds.  A much more natural seed would seem to be
>>  tv_sec*1000000 + tv_usec
>> Which at least will never repeat on different ticks.

Unless int is small, which gives faster wraparound.

>> But (...) some round tv_usec to multiples of 10000 microseconds,

Ah, yes.  That's why I didn't multiply tv_sec with anything.

Better fix:  Replace 1000000 above with some uneven larger number.

>> it would still be useful to mix in a getpid().

Which I did.

>>> seed ^= ( (  269 * (U32)getpid())
>>>         ^ (26107 * (U32)&when)
>>>         ^ (73819 * (U32)stack_sp));
>> Since you're using primes here, why not use the addition operator from
>> the same field that the primes are in, which would generate a group
>> the size of the product of those primes for avoiding repetitions?

Fine.  Someone said xor, but not with any arguments that I can rember.

>> Are you still using rand(3), rather than the better random(3)?  If so,
>> there may be the additional issue that small changes in the seed tend
>> to produce small changes in the sequence.  In that case, something
>> like seed*32769 (i.e. seed + (seed<<15)) may help.  (though a prime
>> like 32771 might be better.)

INSTALL suggests -Drand=random -Dsrand=srandom if one wants larger
period.  Which means the period could be anything.  However,
#if RANDBITS > 32 ... #else #if RANDBITS > 16 ... #else ...
should allow us to tune this for the most common seed sizes.

Anyway, what should be used is a *real* hash function which spreads the
effect of every bit over a whole 1<<RANDBITS, so truncating to 32, 48 or
16 bits will all work.  Multiplication with primes is not good enough,
because changes in high bits do not affect low bits of the seed.
However, I can't do that without checking some book, I don't know what
code to avoid which could cause recurring patterns instead...

Anyway, here is a starting point - slightly improved from your version:

[included code block applied as patch - ed]

Oh, also note:

Some time ago, Chip Salzenberg wrote:
>According to Fabien TASSIN:
>>> warning(1412): destination type of cast is too small to
>>>           hold all pointers: truncation possible
>>>            ^ (26107 * (U32)&when)
>>>                       ^
>> this one is interesting for all 64bit OSs..
> It's on purpose.  The value of "&when" is just a presumably large,
> difficult-to-predict value; converting it to U32 is the Right Thing,
> even on 64-bit machines.

wouldn't hurt, if the latter type exists:-) And the same for
(U32)stack_sp, of course.


26 years agoPatch for
Chip Salzenberg [Tue, 25 Mar 1997 19:04:34 +0000 (07:04 +1200)]
Patch for

(this is the same change as commit 3f1bea595935e4179e5648faacfa5b549f2d7e03, but as applied)