This is a live mirror of the Perl 5 development currently hosted at
24 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.

24 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.


24 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*]


24 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

24 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

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

24 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

24 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

24 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)

24 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:


24 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

24 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

24 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

24 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]

24 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)

24 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: <>

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


24 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

24 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:


24 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)

24 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

24 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?):


24 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

24 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:


24 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)

24 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.


24 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.


24 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:


24 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. :-)


24 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

24 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.


24 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)

24 years agoPatch for
Hugo van der Sanden [Sat, 29 Mar 1997 15:04:32 +0000 (15:04 +0000)]
Patch for

This patch is a cleanup for the Benchmark module. It documents all the
stuff that wasn't, including my recent patch to allow code references;
it removes the old perl-comment docs that duplicate the POD; it fixes
some minor bugs (mostly of the '$arg ||= $default' instead of
'$arg = $default unless defined $arg' variety) and generally tidies
things up a bit.

Let me know if any of this causes problems,

Signed-off-by: Hugo van der Sanden <>
24 years agoTypo in perl.c: Printing NO_EMBED for perl -V
Gisle Aas [Sun, 30 Mar 1997 19:22:11 +0000 (21:22 +0200)]
Typo in perl.c: Printing NO_EMBED for perl -V


24 years agoC<new SelectSaver $fh> doesn't always restore
Spider Boardman [Sat, 29 Mar 1997 19:06:37 +0000 (14:06 -0500)]
C<new SelectSaver $fh> doesn't always restore

This is a bug report for perl from spider@Orb.Nashua.NH.US,

If you're lucky enough to get a signal (such as ALRM) which is handled
with die() while in a SelectSaver->new($fh) call, your previous output
filehandle is not restored.  It violates the basic rule of 'save and
restore' handling, in that it modifies the state it wants to restore
I<before> it has ensured that the prior state will be restored.  Patch:

p5p-msgid: 199703291906.OAA07232@Orb.Nashua.NH.US

24 years agosafefree() mismatch
Roderick Schertler [Sat, 29 Mar 1997 16:36:21 +0000 (11:36 -0500)]
safefree() mismatch

The declaration of safefree() in proto.h disagrees with the definition
in util.c.


24 years agoRe: $whoami calculation in should not be greedy
Roderick Schertler [Sat, 29 Mar 1997 16:33:24 +0000 (11:33 -0500)]
Re: $whoami calculation in should not be greedy

On Fri, 28 Mar 1997 16:42:46 -0600 (CST), (Marc Rouleau) said:
> I suggest replacing
>     if (!$ident && $mask =~ /^(\S.*):\s?(.*)/) {
> with
>     if (!$ident && $mask =~ /^(\S.*?):\s?(.*)/) {
> at about line 157.  Otherwise, syslog'ing text containing a colon
> doesn't work right.

I think it's a reasonable tradeoff (it'll prevent "foo::bar: message"
from working but it'll allow "foo: can't do x: message").  The first
probably doesn't work properly with most syslogds anyway, one here would
log it as

    foo:<17.6>:bar[21244]: message


24 years agoRe: Pod problems & fixes
Hallvard B Furuseth [Wed, 26 Mar 1997 18:29:14 +0000 (19:29 +0100)]
Re: Pod problems & fixes

> Couldn't we please just make it program options?

Right.  Well, here is a simple version.  The output of
perl -d -MPod::Text -e 'pod2text(@ARGV)' -- -a -72 INSTALL
follows, then the patch.  What say?

Needs a few details - like L<> output, but that can wait until the
relevant people say yes/no.

    =head1 foo  ->  ==== foo ====
    =head2 foo  ->  ==   foo   ==
    =item  foo  ->  :    foo             (i.e. s/^  /: /, so a search
                                          for /^:/ finds next =item)

    B<foo>      ->     ``foo''           (was unquoted)
    C<foo>      ->     ``foo''           (was `foo')
    F<foo>      ->      "foo"            (was unquoted)
    I<foo>      ->      *foo*
    L<foo>      -> the section on "foo"  (details here must be fixed.

The =items look a little strange, but OK.  Anyone got a better
suggestion?  But remember:

> From: Andy Dougherty <>
> Mostly, they can just use /^=/ in their favorite pager and find their way
> around the file.  If we remove the =head and =item markers, this sense of
> where you are in the whole file gets lost.  So I'm not going to do that.

BTW, is it a point to have just one string to search for?  If so, s/^:/=/.

Indentation: Have not checked exactly, but apparently =head* sets indent
to 4, =item adds 4.  Some verbatim paragraphs get too indented.  One fix
might be *not* to indent things under =head* that are not =items,
another would be to edit INSTALL a bit.

Also did

    s/B<(Note:?|before|not)>/I<$1>/gi; # correct, I think

    s/B<(ARCH|VERSION)>/$1/g; # looked a bit silly in ``quotes'',
# and after all they are already
# in uppercase.


24 years agoFix C<print $_> in debugger
Ilya Zakharevich [Mon, 31 Mar 1997 23:55:55 +0000 (18:55 -0500)]
Fix C<print $_> in debugger


24 years agoAllow for coexistence of various versions of perldiag.pod
Chip Salzenberg [Sat, 22 Mar 1997 03:57:24 +0000 (15:57 +1200)]
Allow for coexistence of various versions of perldiag.pod

24 years agoEliminate unused dummy variable
Doug MacEachern [Thu, 27 Mar 1997 01:23:14 +0000 (20:23 -0500)]
Eliminate unused dummy variable


24 years agohints/ update (don't use -lmalloc)
Slaven Rezic [Mon, 31 Mar 1997 14:17:42 +0000 (16:17 +0200)]
hints/ update (don't use -lmalloc)

Here's an update for hints/ Configure should not try to use
-lmalloc, since it's very likely an old malloc from the compatibility
package compat1.x.


24 years agoDie on patterns that will match empty string forever
Stephen Potter [Fri, 28 Mar 1997 21:38:30 +0000 (15:38 -0600)]
Die on patterns that will match empty string forever

Subject: Re: Segementation fault in perl5.001 and 5.003

Strange sunspot activity caused =?iso-8859-1?Q?Markus_Thei=DFinger?= <Markus.Th> to write:
| Hi,
| perl -e '$_=3D" 2"; print STDOUT /^(\s*(\))*)+$/;'
| produces a segmentation fault [snips]

Confirmed on 3_95.  I'm surprised this kind of thing lasted this long.
Actually, I could have sworn someone fixed this awhile back.  I suppose one
of the regulars could probably provide a better patch.

Works fine on 4.036, this patch returns it to 4.036 functionality.


24 years ago[differences between cumulative patch application and perl-5.003_95] perl-5.003_95
Chip Salzenberg [Sat, 22 Mar 1997 03:34:25 +0000 (15:34 +1200)]
[differences between cumulative patch application and perl-5.003_95]

24 years ago[inseparable changes from match from perl-5.003_94 to perl-5.003_95]
Perl 5 Porters [Sat, 22 Mar 1997 03:34:25 +0000 (15:34 +1200)]
[inseparable changes from match from perl-5.003_94 to perl-5.003_95]


Subject: Don't compile scalar mods of aggregates, like C<@a =~ s/a/b/>
From: Chip Salzenberg <>
Files: op.c t/op/misc.t

Subject: Warn about undef magic values just like non-magic
From: Chip Salzenberg <>
Files: ext/Opcode/ sv.c t/lib/db-btree.t t/lib/db-hash.t t/lib/db-recno.t t/pragma/locale.t


Subject: Win32 update (five patches)
From: Gurusamy Sarathy <>
Files: MANIFEST README.win32 doio.c dosish.h pp_sys.c lib/ExtUtils/ t/comp/multiline.t t/op/magic.t t/op/mkdir.t t/op/runlevel.t t/op/stat.t t/op/write.t win32/Makefile win32/config.H win32/config.w32 win32/win32.c win32/win32.h win32/win32aux.c win32/*.mak win32/VC-2.0/*.mak


Subject: INSTALL-1.8 to INSTALL-1.9 updates
Date: Tue, 25 Mar 1997 13:52:53 -0500 (EST)
From: Andy Dougherty <>
Msg-ID: Pine.SOL.3.95q.970325135138.3374A-100000@fractal.lafayette.e

    (applied based on p5p patch as commit 9b1ae96a0b4301a9588f62b3175bc0312302f4b9)

Subject: Document possible problems with -Mdiagnostics after upgrade
From: Chip Salzenberg <>

Subject: Mention perldelta in INSTALL
From: Chip Salzenberg <>

Subject: Describe pod format at top of INSTALL
From: Chip Salzenberg <>

Subject: Document C</a *b/x> fix
From: Chip Salzenberg <>
Files: pod/perldelta.pod

Subject: pods for subroutine argument autovivication
Date: Mon, 24 Mar 1997 07:25:21 +0000
From: "M.J.T. Guy" <>
Files: pod/perldelta.pod pod/perlsub.pod

    (applied based on p5p patch as commit db8878faa51a8a1541a40745a8613adb5db155e4)

Subject: Missing item in perldiag
Date: Sun, 23 Mar 1997 09:24:09 +0000
From: "M.J.T. Guy" <>
Files: pod/perldiag.pod

    (applied based on p5p patch as commit c00a529017138505fcbe538b74c7884abe1d18e1)

Subject: Pod problems & fixes
Date: Mon, 24 Mar 1997 21:31:51 +0100 (MET)
From: Hallvard B Furuseth <>
Files: INSTALL lib/Term/ lib/ pod/perlcall.pod pod/perldata.pod pod/perldiag.pod pod/perlembed.pod pod/perlguts.pod pod/perlmod.pod pod/perlop.pod pod/perlpod.pod pod/pod2html.PL

    (applied based on p5p patch as commit 55a864fe4cea1a0586891b83d359ba71e0972da5)

Subject: FAQ update
From: Nathan Torkington <>
Files: pod/perlfaq*.pod


Subject: Improve 'prototype mismatch' warning
From: Chip Salzenberg <>
Files: global.sym op.c pod/perldiag.pod proto.h sv.c t/comp/redef.t

24 years agoPod problems & fixes
Hallvard B Furuseth [Mon, 24 Mar 1997 20:31:51 +0000 (21:31 +0100)]
Pod problems & fixes

Files: pod/perldiag.pod
Subject: pod2text expands B<-i>C<.bak> to -i`.bak'.  With a quote in
         the middle, it looks like it should be typed in verbatim.
         `-i.bak' is better.

Files: pod/pod2html.PL
Subject: "mailto:" is case-sensitive in URLs.

Files: lib/Term/ lib/ pod/perlop.pod pod/perlembed.pod
Subject: Missing empty lines

Files: INSTALL pod/perlguts.pod
Subject: change `the section on L<..>' to `L<..>', because pod2*
         inserts the "the section on".

Files: pod/perlmod.pod pod/perlcall.pod
Subject: "perl5.00X" -> "perl5.00X or higher"

Files: pod/perldata.pod pod/perldiag.pod pod/perlpod.pod
Subject: "blank line" -> "empty line" where spaces are not ignored

24 years agoDB_File documentation fix
Paul Marquess [Mon, 24 Mar 1997 08:54:16 +0000 (08:54 +0000)]
DB_File documentation fix

  Title:  "Regularize headings in DB_File documentation"
   From:  Chip Salzenberg
  Files:  ext/DB_File/
  [see commit 68dc074516a6859e3424b48d1647bcb08b1a1a7d]

You forgot to fix the links to the sections titles you changed.


24 years agoMissing item in perldiag
M.J.T. Guy [Sun, 23 Mar 1997 09:24:09 +0000 (09:24 +0000)]
Missing item in perldiag

An omission from perldiag:


24 years agoMention and discourage use of term 'soft reference'
Chip Salzenberg [Tue, 31 Dec 1996 06:52:38 +0000 (18:52 +1200)]
Mention and discourage use of term 'soft reference'

24 years agopods for subroutine argument autovivication
M.J.T. Guy [Mon, 24 Mar 1997 07:25:21 +0000 (07:25 +0000)]
pods for subroutine argument autovivication

Here are pod updates for subroutine argument autovivication.
I'll also try to do some additions to the tests.

One small detail noted:

       perl -we 'sub f { print @_ }; f $a[0]'


       Use of uninitialized value at -e line 1.

under Perl 5.003 but is silent under Perl5.003_94.    Do we care?


24 years agoImprove pod2man diagnostic when NAME is invalid
Chip Salzenberg [Fri, 21 Mar 1997 02:38:44 +0000 (14:38 +1200)]
Improve pod2man diagnostic when NAME is invalid

24 years agoINSTALL-1.8 to INSTALL-1.9 updates
Andy Dougherty [Tue, 25 Mar 1997 18:52:53 +0000 (13:52 -0500)]
INSTALL-1.8 to INSTALL-1.9 updates

A few more updates to INSTALL, inspired by a note here about -DDEBUGGING
and by a few recent posts to comp.lang.perl.misc about problems Solaris
folks were having with nm extraction.

private-msgid: Pine.SOL.3.95q.970325135138.3374A-100000@fractal.lafayette.e

24 years ago[dummy merge]
Chip Salzenberg [Sat, 22 Mar 1997 03:34:25 +0000 (15:34 +1200)]
[dummy merge]

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

24 years agoReduce memory footprint of complex.t
Chip Salzenberg [Sat, 22 Mar 1997 03:34:25 +0000 (15:34 +1200)]
Reduce memory footprint of complex.t

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

24 years agoReduce memory footprint of complex.t
Dominic Dunlop [Tue, 25 Mar 1997 14:39:26 +0000 (15:39 +0100)]
Reduce memory footprint of complex.t

Over the weekend, I said:
>Passes all expected tests on MachTen 4.0.3, EXCEPT...
>lib/complex fails to run because it wants more virtual memory than my
>system can provide.  My system can provide 22 megs, which is not vast, but
>should be adequate to run a test, so I think lib/complex is being greedy.
>I'm pretty sure that the cause is repeated use of .= or similar on a
>scalar: the system malloc() which perl has to use on MachTen does not
>appear to coalesce free()d chunks, so behaves very badly when a scalar
>grows repeatedly.  Anyway, I'll delve deeper and probably post a patch.

Here's that patch.  It saves 2,861 (give or take) of those realloc()s my
system's native malloc() package fields so badly.  Beware long lines.  Hope
they reach you unmangled.  (If not, ask me to send it uuencoded, or as a
MIME attachment or something.)  You'll also need to hand patch a
--ignore-whitespace option: tabs will have been munged into spaces.

p5p-msgid: v03020902af5d8e03c5ab@[]

24 years ago[dummy merge]
Chip Salzenberg [Sat, 22 Mar 1997 03:34:25 +0000 (15:34 +1200)]
[dummy merge]

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

24 years agoTerm::Readline patch for AmigaOS
Chip Salzenberg [Sat, 22 Mar 1997 03:34:25 +0000 (15:34 +1200)]
Term::Readline patch for AmigaOS

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

24 years agoTerm::Readline patch for AmigaOS
Norbert Pueschel [Sun, 23 Mar 1997 17:57:22 +0000 (18:57 +0100)]
Term::Readline patch for AmigaOS

I stumbled upon this when trying to get CPAN working.


24 years agoExporting UNIVERSAL::can
M.J.T. Guy [Mon, 24 Mar 1997 17:54:01 +0000 (17:54 +0000)]
Exporting UNIVERSAL::can

UNIVERSAL allows the export of 'isa' but not 'can'.    Since it
is useful to be able to apply 'can' to non-references (to avoid having
to do redundant tests), I offer the following tiny patch.

This also updates the pod to make it slightly clearer that both
functions can be applied to arbitrary values, not just references.


24 years agoExtraneous blank lines from Pod::Text
Russ Allbery [Tue, 25 Mar 1997 09:28:55 +0000 (01:28 -0800)]
Extraneous blank lines from Pod::Text

I get the impression that eventually all of the Pod stuff currently
distributed with Perl is going to be phased out in favor of something new,
but in the meantime pod2text has always generated an extra blank line
after literal text (indented text).  The following patch to Pod::Text
appears to fix that, although I may be missing something since I don't
understand why the removed line was ever there to begin with.


24 years agoFix C<require> in Getopt::Long to work with 5.003
Chip Salzenberg [Fri, 21 Mar 1997 07:30:20 +0000 (19:30 +1200)]
Fix C<require> in Getopt::Long to work with 5.003

24 years agoIn perlio, fix vprintf() definition and define vfprintf()
Chip Salzenberg [Sun, 22 Dec 1996 02:07:47 +0000 (14:07 +1200)]
In perlio, fix vprintf() definition and define vfprintf()

24 years agoFix botch with G_NOARGS; PUSHMARK *is* required
Chip Salzenberg [Fri, 21 Mar 1997 02:44:56 +0000 (14:44 +1200)]
Fix botch with G_NOARGS; PUSHMARK *is* required

24 years agoAnother MachTen Patch
Tom Phoenix [Mon, 24 Mar 1997 23:26:48 +0000 (15:26 -0800)]
Another MachTen Patch


24 years agoRemove redundant patch to hints/
Shigeya Suzuki [Sat, 22 Mar 1997 13:22:44 +0000 (22:22 +0900)]
Remove redundant patch to hints/

Subject: hints/ wrong in _94 (Re: Perl 5.003_94 is available)

>> So use his patch instead of mine.

Seems to be wrong. Please apply following patch against _94


24 years agoIf C<perl -a>, do equivalent of C<use vars '@F'>
Chip Salzenberg [Fri, 21 Mar 1997 05:42:30 +0000 (17:42 +1200)]
If C<perl -a>, do equivalent of C<use vars '@F'>

24 years agoRefine modulus ("%") per suggestion of Tim Goodwin
Chip Salzenberg [Sat, 22 Mar 1997 00:40:20 +0000 (12:40 +1200)]
Refine modulus ("%") per suggestion of Tim Goodwin

24 years agoAutomatically flush on C< $| = 1 >
Chip Salzenberg [Fri, 21 Mar 1997 19:42:31 +0000 (07:42 +1200)]
Automatically flush on C< $| = 1 >

24 years ago[differences between cumulative patch application and perl-5.003_94] perl-5.003_94
Chip Salzenberg [Sat, 8 Mar 1997 23:57:19 +0000 (11:57 +1200)]
[differences between cumulative patch application and perl-5.003_94]

24 years ago[inseparable changes from match from perl-5.003_93 to perl-5.003_94]
Perl 5 Porters [Sat, 8 Mar 1997 23:57:19 +0000 (11:57 +1200)]
[inseparable changes from match from perl-5.003_93 to perl-5.003_94]


Subject: Don't use db 2.x, we're not yet ready for it
From: Paul Marquess <>
Files: Configure

Subject: Warn if #! command is longer than 32 chars
From: Chip Salzenberg <>
Files: Configure

Subject: patches re perl -wc install{perl,man}
Date: Tue, 11 Mar 97 13:13:16 GMT
From: Robin Barker <>
Files: installman installperl

    I got the new installhtml from CPAN

    I had problems getting the system call to splitpod at line 376 to work.

    1. splitroot was not being found
    2. splitroot was not finding its library
    3. I changed htmlroot to podroot at line 175 to match the documentation.


Subject: 3_93 doesn't install pods
Date: Sun, 16 Mar 1997 02:21:35 -0500
From: Spider Boardman <>
Files: installperl
Msg-ID: 199703160721.CAA08339@Orb.Nashua.NH.US

    (applied based on p5p patch as commit 43506a616735d616e03d277d64fbae1e864024bf)

Subject: When installing, use File::Copy instead of `cp`
From: Chip Salzenberg <>
Files: installperl

Subject: Make hint files' warnings more visible
Date: Thu, 20 Mar 1997 23:18:03 +0100 (MET)
From: Hallvard B Furuseth <>
Files: hints/ hints/ hints/ hints/ hints/ hints/ hints/ hints/ hints/ hints/ hints/ hints/ hints/ hints/ hints/ hints/ hints/ hints/



Subject: Defer creation of array and hash elements as parameters
From: Chip Salzenberg <>
Files: dump.c global.sym mg.c op.c op.h perl.h pp.c pp_hot.c proto.h sv.c

Subject: New special literal: __PACKAGE__
From: Chip Salzenberg <>
Files: pod/perldata.pod toke.c

Subject: Abort compilation at C<BEGIN{}> or C<use> after errors
From: Chip Salzenberg <>
Files: op.c pod/perldiag.pod t/pragma/subs.t

Subject: allow C<substr 'hello', -10>
Date: Mon, 10 Mar 1997 15:55:44 -0800
From: David Dyck <>
Files: pp.c

    (applied based on p5p patch as commit 77f720bf92f3d0100352416caeedd57936807ff2)

Subject: Regularize C<x % y>, esp. when y is negative
From: Chip Salzenberg <>
Files: pp.c

Subject: Flush before C<flock(FOO, LOCK_UN)>
From: Chip Salzenberg <>
Files: pod/perldelta.pod pod/perlfunc.pod pp_sys.c

Subject: Close loopholes in prototype mismatch warning
From: Chip Salzenberg <>
Files: op.c sv.c toke.c

Subject: Warn on C<while ($x = each %y) {}>
From: Chip Salzenberg <>
Files: op.c pod/perldiag.pod

Subject: Don't warn on C<print $fh func()>
From: Chip Salzenberg <>
Files: toke.c


Subject: Don't say 'static var = 1'
Date: Sun, 9 Mar 1997 15:19:57 +0200 (EET)
From: Jarkko Hietaniemi <>
Files: malloc.c


Subject: HP/UX hint comments
Date: Fri, 21 Mar 1997 15:43:07 -0500 (EST)
From: Andy Dougherty <>
Files: hints/

    private-msgid: Pine.SOL.3.95q.970321153918.28770B-100000@fractal.lafayette.

Subject: VMS update
Date: Tue, 11 Mar 1997 22:00:55 -0500 (EST)
From: Charles Bailey <>
Files: lib/ExtUtils/ lib/Test/ t/op/taint.t utils/perlbug.PL vms/descrip.mms

    (applied based on p5p patch as commit 2b5725676da60b49978f38b85bb7f8ee20b4cb55)

Subject: vmsish.t and related patches
Date: Fri, 21 Mar 1997 01:32:47 -0500 (EST)
From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU>
Files: MANIFEST perl.h vms/descrip.mms vms/ext/vmsish.t vms/vms.c


Subject: Win32 update (four patches)
From: Gurusamy Sarathy <>
Files: MANIFEST README.win32 lib/ lib/ lib/ExtUtils/ lib/ExtUtils/ lib/ExtUtils/ lib/ExtUtils/ lib/ExtUtils/ lib/ExtUtils/ lib/ExtUtils/ lib/File/ lib/File/ mg.c t/comp/cpp.t t/comp/script.t t/harness t/io/argv.t t/io/dup.t t/io/fs.t t/io/inplace.t t/lib/filehand.t t/lib/io_dup.t t/lib/io_sel.t t/lib/io_taint.t t/op/closure.t t/op/exec.t t/op/glob.t t/op/goto.t t/op/magic.t t/op/misc.t t/op/rand.t t/op/split.t t/op/stat.t t/op/sysio.t t/op/taint.t t/pragma/strict.t t/pragma/subs.t t/pragma/warning.t util.c win32/*


Subject: perlfaq.pod
Date: Mon, 17 Mar 1997 16:01:40 -0700
From: Tom Christiansen <>
Files: MANIFEST pod/Makefile pod/buildtoc pod/perl.pod pod/perlfaq*.pod pod/roffitall


Subject: *.pod changes based on the FAQ
Date: Mon, 17 Mar 1997 09:50:14 -0700 (MST)
From: Nat Torkington <>
Files: pod/perldata.pod pod/perlfunc.pod pod/perlipc.pod pod/perlop.pod pod/perlre.pod pod/perlrun.pod pod/perlsec.pod pod/perlvar.pod

    (applied based on p5p patch as commit 3c10ad8e31f7d77e71c048b1746912f41cb540f0)

Subject: Document that $. is not reset on implicit open
From: Chip Salzenberg <>
Files: pod/perldelta.pod

Subject: Re: Embedding success with _93
Date: Tue, 11 Mar 1997 17:55:05 -0500
From: Doug MacEachern <>
Files: pod/perldelta.pod

    (applied based on p5p patch as commit 63a6ff3a1dc8d86edb4d8a7ec1548205e32a7114)

Subject: Patch to document illegal characters
Date: Fri, 14 Mar 1997 09:08:10 -0800 (PST)
From: Tom Phoenix <>
Files: pod/perldiag.pod pod/perltrap.pod


Subject: Document trap with //o and closures
Date: Mon, 10 Mar 1997 18:08:08 -0500 (EST)
From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU>
Files: pod/perltrap.pod

    (applied based on p5p patch as commit a54cb1465fdb400848f23705a6f130bb5c34ab70)

Subject: Illegal character in input
Date: Mon, 10 Mar 1997 15:21:21 -0800 (PST)
From: Tom Phoenix <>
Files: pod/perldiag.pod


Subject: Patch for docs Re: Lost backslash
Date: Wed, 19 Mar 1997 07:28:57 -0800 (PST)
From: Tom Phoenix <>
Files: pod/perlop.pod


Subject: XSUB's doc fix
Date: Mon, 10 Mar 1997 11:42:06 -0500
From: Roderick Schertler <>
Files: pod/perlcall.pod pod/perlguts.pod pod/perlxstut.pod

    (applied based on p5p patch as commit 5f43237038ea7a4151d3bf65aeeecd56ceb78a6a)

Subject: Document return from do FILE
Date: Tue, 18 Mar 1997 14:50:10 +0000
From: "M.J.T. Guy" <>
Files: pod/perlfunc.pod

    (applied based on p5p patch as commit ba8d5fb439878113de8abc9b52d2af237d30fb3c)

Subject: Document $^M in perlvar
Date: Thu, 20 Mar 97 21:08:33 GMT
From: Robin Barker <>
Files: pod/perlvar.pod


Subject: typos in pods of 5.003_93
Date: 19 Mar 1997 10:39:38 -0600
From: Jim Meyering <>
Files: pod/perlfunc.pod pod/perlguts.pod pod/perlre.pod pod/perltoot.pod pod/perlxs.pod

    (applied based on p5p patch as commit 76a9873e006cf8f48f57062b2a0dd40b5ed45a95)

Subject: Re: Updates to pod punctuations
Date: Fri, 14 Mar 1997 17:00:12 -0500
From: Larry W. Virden <>
Files: pod/*.pod


Subject: clarify example in perlfunc
Date: Thu, 20 Mar 1997 19:46:01 +0200 (EET)
From: Jarkko Hietaniemi <>
Files: pod/perlfunc.pod


Subject: Regularize headings in DB_File documentation
From: Chip Salzenberg <>
Files: ext/DB_File/


Subject: New module:
Date: Thu, 20 Mar 1997 19:34:30 -0500 (EST)
From: Ilya Zakharevich <>
Files: MANIFEST lib/

    (applied based on p5p patch as commit 6757905eccb6dd0440ef65e8128a277a20f7d943)

Subject: Refresh DB_File to 1.12
Date: Wed, 12 Mar 97 15:51:14 GMT
From: Paul Marquess <>
Files: ext/DB_File/ ext/DB_File/DB_File.xs

    (applied based on p5p patch as commit b3deed9189f963e9994815307931f9084f60d1d9)

Subject: In File::Path, some systems can't remove read-only files
From: Chip Salzenberg <>
Files: lib/File/

Subject: Fix bugs revealed by prototype warnings
From: Chip Salzenberg <>
Files: ext/Opcode/ lib/ExtUtils/ lib/Getopt/

Subject: Problems with SKIP in makemaker
Date: Thu, 20 Mar 1997 23:13:31 -0500 (EST)
From: Ilya Zakharevich <>
Files: lib/ExtUtils/

    (applied based on p5p patch as commit 970322a2e8024294ada6e8d1a027cb98f1f48ee3)

Subject: In Exporter, don't C<require Carp> at file scope
From: Chip Salzenberg <>
Files: lib/

Subject: fix for Exporter's $SIG{__WARN__} handler
Date: Thu, 13 Mar 1997 18:40:51 -0500
From: Roderick Schertler <>
Files: lib/

    (applied based on p5p patch as commit 2768ea1aeef34f42d096f198fbe629c8374ca429)

Subject: Don't try to substr() refs in Carp
From: Chip Salzenberg <>
Files: lib/

Subject: Re: NUL in die and other messages
Date: Fri, 21 Mar 1997 09:58:17 +0000
From: "M.J.T. Guy" <>
Files: lib/

    (applied based on p5p patch as commit 52a267c574cb66c4bc35601dcf148a1d7a3bc557)


Subject: Guard against buffer overflow in yyerror() and related funcs
From: Chip Salzenberg <>
Files: toke.c

Subject: For bin compat, rename calllist() and he_{,delay}free
From: Chip Salzenberg <>
Files: global.sym hv.c op.c perl.c pod/perlguts.pod proto.h

Subject: Fix C<print> on tied default handle
From: Chip Salzenberg <>
Files: pp_hot.c

Subject: Fix C<local($a, undef, $b) = (1,2,3)>
From: Chip Salzenberg <>
Files: op.c

Subject: Improve diagnostic on C<@a++>, C<--%a>, @a =~ s/a/b/
From: Chip Salzenberg <>
Files: pp.c pp_hot.c

Subject: Don't warn on C<$x{y} .= "z"> when %x is tied
From: Chip Salzenberg <>
Files: pp_hot.c

Subject: Eliminate 'unreachable code' warnings
From: Chip Salzenberg <>
Files: ext/POSIX/POSIX.xs mg.c pp_ctl.c toke.c

Subject: printf format corrections for -DDEBUGGING
Date: Wed, 19 Mar 1997 12:42:50 -0500
From: Roderick Schertler <>
Files: doop.c malloc.c op.c pp_ctl.c regexec.c sv.c x2p/str.c x2p/util.c

    (applied based on p5p patch as commit e125f273e351a19a92b69d6244af55abbbf0a26d)

Subject: Warn about missing -DMULTIPLICITY if likely a problem
Date: Wed, 19 Mar 1997 18:45:53 -0500
From: Doug MacEachern <>
Files: perl.c

    (applied based on p5p patch as commit 71aeea1753924e6e19c2461e241e3f7d8a570e90)

24 years agotypos in pods of 5.003_93
Jim Meyering [Wed, 19 Mar 1997 16:39:38 +0000 (10:39 -0600)]
typos in pods of 5.003_93

This patch fixes one misspelling and several doubled words.


24 years agoRe: Inline PI function
Tom Phoenix [Mon, 10 Mar 1997 22:33:20 +0000 (14:33 -0800)]
Re: Inline PI function


24 years agoDocument return from do FILE
M.J.T. Guy [Tue, 18 Mar 1997 14:50:10 +0000 (14:50 +0000)]
Document return from do FILE

I observe by experiment that you can use 'return' to exit from a 'do',
but this fact is not documented.


24 years agoUpdate site list
Larry W. Virden [Tue, 11 Mar 1997 15:53:49 +0000 (10:53 -0500)]
Update site list

Signed-off-by: x2487 <>
24 years agoXSUB's doc fix
Roderick Schertler [Mon, 10 Mar 1997 16:42:06 +0000 (11:42 -0500)]
XSUB's doc fix


24 years ago[dummy merge]
Chip Salzenberg [Sat, 8 Mar 1997 23:57:19 +0000 (11:57 +1200)]
[dummy merge]

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

24 years agoDocument trap with //o and closures
Charles Bailey [Mon, 10 Mar 1997 23:08:08 +0000 (18:08 -0500)]
Document trap with //o and closures

Subject: Re: Possible bug: /o overeager in closure constructor

Chip Salzenberg <> wrote:
| According to Charles Bailey:
| > OK, so eval "" is the current workaround (but not eval '', if some of
| > the lexicals come from a block scope :-)).  Should this be documented?
| IMO, it deserves an entry in perltrap.

How 'bout something like

=item * Regular Expression

Currently, if you use the /o qualifier on a regular expression within
an anonymous subroutine, I<all> closures generated from that anonymous
sub constructor will use the regular expression compiled the very
first time the constructor was called.  For instance, if you say

    sub build_match {
       my($left,$right) = @_;
       return sub { $_[0] =~ /$left stuff $right/o; };

build_match will always return a sub which matches the contents of
C<$left> and <$right> from the first time it was called, not from
the current call.  This is probably a bug, and may change in future
versions of Perl.

It's a bit long, but I can't think of a more concise explanation
that's not confusing.

BTW, should we have a perlbugs.pod or somesuch as a home for things
like this, which aren't so much stable changes in the language as
problems we haven't been able to sort out yet?


24 years agoINSTALL: How to enable debugging
Chip Salzenberg [Sat, 8 Mar 1997 23:57:19 +0000 (11:57 +1200)]
INSTALL:  How to enable debugging

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

24 years agoINSTALL: How to enable debugging
Andy Dougherty [Fri, 21 Mar 1997 16:25:32 +0000 (11:25 -0500)]
INSTALL:  How to enable debugging

On Fri, 21 Mar 1997, Tom Christiansen wrote:

> BTW, why isn't there a makefile option to do this?  I looked in
> INSTALL, but really saw no obvious way to 'make me a perl with cc -g
> style debugging'.  There should be, or if there is, there should be
> clearer directions.

It's all spelled out for you when you run Configure interactively, of
course, but you already knew that :-)

private-msgid: Pine.SOL.3.95q.970321112326.1414A-100000@fractal.lafayette.e

24 years agoRe: Embedding success with _93
Doug MacEachern [Tue, 11 Mar 1997 22:55:05 +0000 (17:55 -0500)]
Re: Embedding success with _93

Chip Salzenberg <> wrote:

> According to Doug MacEachern:
> > The obscure, untraceable failing of test 18 has gone away, my bet is
> > this from Changes: "Fix imbalanced ENTER/LEAVE from C<BEGIN{die}>".
> > fantastic, excellent work Chip!!!
> Thank you, but although I coded that patch, I wouldn't have known
> where to start if Sarathy hadn't given me a map and directions.

well then, thanks Sarathy!  But, I wasn't just saying thanks for that
fix, rather, _all_ the work you have done Chip, esp. _all_ the embedding
fixes.  I think perldelta should mention this somehow:


24 years agoRe: bug in pod2man (5.00326): section=3 for .pm modules
Roderick Schertler [Wed, 12 Mar 1997 00:09:31 +0000 (19:09 -0500)]
Re: bug in pod2man (5.00326): section=3 for .pm modules

On Tue, 11 Mar 1997 21:25:10 +0100 (MET), Slaven Rezic <> said:
> pod2man does not recognize the proper section for .pm modules. You
> have to delete the "$section = $opt_section || $DEF_SECTION;" in line
> 378 in .../pod/pod2man.PL, since it overrides the proper setting in
> line 362.

Good catch.  Here's that fix plus code to use the man3 extension
specified to Configure (I use 3pm myself).


24 years ago*.pod changes based on the FAQ
Nat Torkington [Mon, 17 Mar 1997 16:50:14 +0000 (09:50 -0700)]
*.pod changes based on the FAQ

After the faqqing dust has settled, it looks like a couple of the
things in the FAQ aren't mentioned in the pods and should be.  I came
up with a list of possible changes, and have implemented all but:
 - Need a discussion of optimising for speed/size, including compiling,
   autosplitting, etc.
 - The buffering discussion from part5 belongs somewhere.
 - The explanation of C<..> in perlop is confusing.  Then again, C<..> is


24 years agoFix typos in IO::Socket documentation
M.J.T. Guy [Tue, 18 Mar 1997 20:50:16 +0000 (20:50 +0000)]
Fix typos in IO::Socket documentation

At line 156, IO::Socket::configure reads

    croak "IO::Socket: Cannot configure socket in domain '$domain'"
        unless ref($fh) eq "IO::Socket";

Doesn't this mean that IO::Socket fails the 'empty subclass' test?
Should the condition be replaced with 'isa' or something?

And the following patch mends a few minor typos in the pod.


24 years agoRe: NUL in die and other messages
M.J.T. Guy [Fri, 21 Mar 1997 09:58:17 +0000 (09:58 +0000)]
Re: NUL in die and other messages

There has been no response to this on p5p, Chip hasn't included it
in his "More seeds of _94" and I can't find it on the archive.
So I suppose it got lost.

I note that the patch needs to be merged with a more recently posted
one handling references.


24 years agoAdd entry for prototype() in Pod::Functions
Chip Salzenberg [Thu, 2 Jan 1997 23:18:00 +0000 (11:18 +1200)]
Add entry for prototype() in Pod::Functions

24 years agofix for Exporter's $SIG{__WARN__} handler
Roderick Schertler [Thu, 13 Mar 1997 23:40:51 +0000 (18:40 -0500)]
fix for Exporter's $SIG{__WARN__} handler

Exporter's $SIG{__WARN__} handler is too zealous.  It fails here:

    $ cat t
    require Carp;
    package Foo;
@ISA = qw(Exporter);
@EXPORT_OK = @EXPORT_FAIL = qw(foo);
sub export_fail {
    my $self = shift;
    Carp::carp("carp from export_fail");
    return ();
    package main;
import Foo 'foo';
    $ perl5.00393 t
    carp from export_fail at t line 16
     at t line 16

This is because the carp() inside export_fail triggers Exporter's
__WARN__ handler which calls carp() a second time which adds the second
" at t line 16".

I was surprised to learn that carp() adds its string to an error message
which ends with a newline, I thought it followed warn()'s lead on that.
I checked 5.003 and it was the same there, too, though.

Also, shouldn't Exporter's __WARN__ handler increment $Carp::CarpLevel
rather than setting it to 1?  I didn't include that in the patch because
I'm not sure, but it seems the right thing to do to me.


24 years ago[dummy merge]
Chip Salzenberg [Sat, 8 Mar 1997 23:57:19 +0000 (11:57 +1200)]
[dummy merge]

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

24 years agoProblems with SKIP in makemaker
Ilya Zakharevich [Fri, 21 Mar 1997 04:13:31 +0000 (23:13 -0500)]
Problems with SKIP in makemaker

The example in perlxstut (which I created with a lot of pain) works by
coincidence only:

It has

    NAME      => 'Mytest2::mylib',
    SKIP      => [qw(all static static_lib dynamic dynamic_lib)],
    clean     => {'FILES' => 'libmylib$(LIB_EXT)'},

sub MY::top_targets {
all :: static

static ::       libmylib$(LIB_EXT)

libmylib$(LIB_EXT): $(O_FILES)
$(AR) cr libmylib$(LIB_EXT) $(O_FILES)
$(RANLIB) libmylib$(LIB_EXT)


and work only because $self->MM::top_targets is not called. The reason is
that 'all' chunk is written anyway not depending on the value of SKIPHASH.

In my eText package I do $self->MM::top_targets inside
MY::top_targets, and this bombs.

Patch follows (only for 'all', I did not check any other target):

(The alternative is to patch perlxstut, but this may break some other
programs, not only mine...)



24 years agoFix typo in -l*perl* pattern
Chip Salzenberg [Sat, 8 Mar 1997 23:57:19 +0000 (11:57 +1200)]
Fix typo in -l*perl* pattern

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

24 years agoFix typo in -l*perl* pattern
Doug MacEachern [Tue, 11 Mar 1997 03:58:38 +0000 (22:58 -0500)]
Fix typo in -l*perl* pattern

one tiny patch for libperlm and friends


24 years agoRefresh DB_File to 1.12
Paul Marquess [Wed, 12 Mar 1997 15:51:14 +0000 (15:51 +0000)]
Refresh DB_File to 1.12

>   Title:  "Regularize headings in DB_File documentation"
>    From:  Chip Salzenberg
>   Files:  ext/DB_File/

Could you merge this patch please. It documents the fact that DB_File
will not yet work with Berkeley DB version 2.


24 years agoIn debugger, don't reference %{$f{$g}} if $f{$g} doesn't exist
Chip Salzenberg [Tue, 4 Mar 1997 22:15:47 +0000 (10:15 +1200)]
In debugger, don't reference %{$f{$g}} if $f{$g} doesn't exist

24 years agoNew module:
Ilya Zakharevich [Fri, 21 Mar 1997 00:34:30 +0000 (19:34 -0500)]
New module:

Subject: Newer

I included support for prototypes (and some warnings in POD) into the
package, but cannot fully check them, since they trigger a lot of bugs
in support of prototypes in Perl. I hope that when the bugs are
corrected, this will work better.



24 years ago[dummy merge]
Chip Salzenberg [Sat, 8 Mar 1997 23:57:19 +0000 (11:57 +1200)]
[dummy merge]

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

24 years ago3_93 doesn't install pods
Spider Boardman [Sun, 16 Mar 1997 07:21:35 +0000 (02:21 -0500)]
3_93 doesn't install pods

My patch (which is in _93) broke installing .pod files.  At least,
I think it's my fault.  Anyway, here's the fix.

p5p-msgid: 199703160721.CAA08339@Orb.Nashua.NH.US

24 years agoNew subroutine Symbol::qualify_to_ref()
Chip Salzenberg [Sat, 8 Mar 1997 23:57:19 +0000 (11:57 +1200)]
New subroutine Symbol::qualify_to_ref()

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

24 years agoNew subroutine Symbol::qualify_to_ref()
Roderick Schertler [Wed, 12 Mar 1997 00:39:36 +0000 (19:39 -0500)]
New subroutine Symbol::qualify_to_ref()

Subject: Re: select under use strict

On Tue, 11 Mar 1997 16:36:25 -0500 (EST), Trevor Blackwell <> said:
>   use strict;
>   syswrite(select,"",0) || warn("$!");
> yields:
>   Can't use string ("main::STDOUT") as a symbol ref [...]

It seems a reasonable candidate for a new function in, a
function just like qualify() which returns a globref.  Here's an
implementation.  I'll send this in again after 5.004.  In the meanwhile
you could just put something like it in your own code.

Usage would be like

    syswrite ref_qualify(select), "foo\n", 4 or die $!;


24 years agoWarn about missing -DMULTIPLICITY if likely a problem
Doug MacEachern [Wed, 19 Mar 1997 23:45:53 +0000 (18:45 -0500)]
Warn about missing -DMULTIPLICITY if likely a problem

Subject: Re: multiple embedded interpreter example in perlembed.pod fails

Ken Fox <> wrote:
> I wrote:
> > Multiple embedded interpreters don't work.  Here's a transcript:
> ...
> >     ccflags =''
> Ugh.  Stupid user error.  I ran Configure with -DMULTIPLICITY instead
> of -Dccflags='-DMULTIPLICITY'.  Sorry for the confusion.

you can also 'make LIBPERL=libperlm.a', libperld, libperldm, etc., or
edit cflags by hand after Configure.

> Could the
> runtime error message be improved to let people know when they've made
> this mistake?

good idea, something like the patch below?  I'm not sure of other
cases where e_fp would be bogus.


24 years agoMath::Complex update
Jarkko Hietaniemi [Thu, 2 Jan 1997 23:17:59 +0000 (11:17 +1200)]
Math::Complex update

24 years agoprintf format corrections for -DDEBUGGING
Roderick Schertler [Wed, 19 Mar 1997 17:42:50 +0000 (12:42 -0500)]
printf format corrections for -DDEBUGGING

Here are some more printf format fixes.  These are all in -DDEBUGGING