Permalink
Switch branches/tags
Commits on Mar 25, 1997
  1. [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]
    
     CORE LANGUAGE CHANGES
    
      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/ParseWords.pm 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
    
     CORE PORTABILITY
    
      Title:  "safefree() mismatch"
       From:  Roderick Schertler
     Msg-ID:  <21338.859653381@eeyore.ibcinc.com>
       Date:  Sat, 29 Mar 1997 11:36:21 -0500
      Files:  util.c
    
        (applied based on p5p patch as commit id 9b9b466)
    
      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/makedef.pl
              win32/modules.mak win32/win32io.c win32/bin/pl2bat.bat
    
     OTHER CORE CHANGES
    
      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:  <199703301922.VAA13509@furubotn.sn.no>
       Date:  Sun, 30 Mar 1997 21:22:11 +0200
      Files:  perl.c
    
        (applied based on p5p patch as commit id b6c639e)
    
      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:  <199703302219.AAA20998@bombur2.uio.no>
       Date:  Mon, 31 Mar 1997 00:19:13 +0200 (MET DST)
      Files:  pp.c
    
        (applied based on p5p patch as commit id d7d933a)
    
      Title:  "Re: embedded perl and top_env problem "
       From:  Gurusamy Sarathy
     Msg-ID:  <199703280031.TAA05711@aatma.engin.umich.edu>
       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 f289f7d)
    
      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:  <199703252110.WAA16038@bombur2.uio.no>
       Date:  Tue, 25 Mar 1997 22:10:33 +0100 (MET)
      Files:  toke.c
    
        (applied based on p5p patch as commit id dfd44a5)
    
      Title:  "Try harder to identify errors at EOF"
       From:  Chip Salzenberg
      Files:  toke.c
    
      Title:  "Minor string change in toke.c: 'bareword'"
       From:  lvirden@cas.org
     Msg-ID:  <1997Mar27.130247.1911552@hmivax.humgen.upenn.edu>
       Date:  Thu, 27 Mar 1997 13:02:46 -0500 (EST)
      Files:  toke.c
    
        (applied based on p5p patch as commit id 9b56c8f)
    
      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
    
     LIBRARY AND EXTENSIONS
    
      Title:  "New module constant.pm"
       From:  Tom Phoenix
      Files:  MANIFEST lib/constant.pm op.c pp.c t/pragma/constant.t
    
      Title:  "Remove chat2"
       From:  Chip Salzenberg
      Files:  MANIFEST lib/chat2.inter lib/chat2.pl
    
      Title:  "Include CGI.pm 2.32"
       From:  Chip Salzenberg
      Files:  MANIFEST eg/cgi/* lib/CGI.pm lib/CGI/Apache.pm
              lib/CGI/Carp.pm lib/CGI/Fast.pm lib/CGI/Push.pm
              lib/CGI/Switch.pm
    
     UTILITIES
    
      Title:  "Tom C's Pod::Html and html tools, as of 30 March 97"
       From:  Chip Salzenberg
      Files:  MANIFEST installhtml lib/Pod/Html.pm pod/pod2html.PL
    
      Title:  "Fix path bugs in installhtml"
       From:  Robin Barker <rmb1@cise.npl.co.uk>
     Msg-ID:  <3180.9703270906@tempest.cise.npl.co.uk>
       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
    
     DOCUMENTATION
    
      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:  <199703251901.UAA15982@bombur2.uio.no>
       Date:  Tue, 25 Mar 1997 20:01:26 +0100 (MET)
      Files:  pod/perldelta.pod
    
        (applied based on p5p patch as commit id 4176c05)
    
      Title:  "Improve and update documentation of constant subs"
       From:  Tom Phoenix <rootbeer@teleport.com>
     Msg-ID:  <Pine.GSO.3.96.970331122546.14185C-100000@kelly.teleport.com>
       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:  <199703262159.WAA17531@furubotn.sn.no>
       Date:  Wed, 26 Mar 1997 22:59:23 +0100
      Files:  pod/perlfunc.pod
    
        (applied based on p5p patch as commit id 35a731f)
    
      Title:  "Use 'while (defined($x = <>)) {}', per <gnat@frii.com>"
       From:  Chip Salzenberg
      Files:  configpm lib/Term/Cap.pm 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:  <199703261254.NAA10237@bergen.sn.no>
       Date:  Wed, 26 Mar 1997 13:54:00 +0100
      Files:  pod/perlvar.pod
    
        (applied based on p5p patch as commit id 0aa182c)
    
      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" <caryr@mxim.com>
     Msg-ID:  <199703262353.PAA01819@macs.mxim.com>
       Date:  Wed, 26 Mar 1997 15:53:22 -0800 (PST)
      Files:  pod/*.pod
    
        (applied based on p5p patch as commit id 5695b28)
    Perl 5 Porters committed with Chip Salzenberg Mar 25, 1997
  2. Pod updates

    Here are some fixes for the pod files.
    
    p5p-msgid: <199703262353.PAA01819@macs.mxim.com>
    Cary D. Renzema committed with Chip Salzenberg Mar 26, 1997
  3. perlvar.pod patch

    p5p-msgid: 199703261254.NAA10237@bergen.sn.no
    gisle committed with Chip Salzenberg Mar 26, 1997
  4. [dummy merge]

    This merge exists so that the p5p version of the patch and the applied
    version are both in the history
    Chip Salzenberg committed Mar 25, 1997
  5. perlfunc.pod patch

    This patch contains various minor corrections and improvements to the
    perl5.003_95 perlfunc POD text:
    
    p5p-msgid: 199703262159.WAA17531@furubotn.sn.no
    gisle committed with Chip Salzenberg Mar 26, 1997
  6. Patch for perl.pod

    (this is the same change as commit 69cddaa, but as applied)
    Chip Salzenberg committed Mar 25, 1997
  7. Patch for perl.pod

    This didn't make it into 95.
    
    p5p-msgid: 199703262305.PAA13121@ducks
    William Middleton committed with Chip Salzenberg Mar 26, 1997
  8. 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?):
    
    p5p-msgid: 199703251901.UAA15982@bombur2.uio.no
    hfuru committed with Chip Salzenberg Mar 25, 1997
  9. [dummy merge]

    This merge exists so that the p5p version of the patch and the applied
    version are both in the history
    Chip Salzenberg committed Mar 25, 1997
  10. 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:
    
    p5p-msgid: 1997Mar27.130247.1911552@hmivax.humgen.upenn.edu
    Larry W. Virden committed with Chip Salzenberg Mar 27, 1997
  11. INSTALL-1.11

    (this is the same change as commit a5d126c, but as applied)
    Chip Salzenberg committed Mar 25, 1997
  12. INSTALL-1.11

    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 diagnostics.pm 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
    
    	mv INSTALL INSTALL.pod
    
    I won't argue much against it.
    
    p5p-msgid: Pine.SOL.3.95q.970326140905.10178A-100000@fractal.lafayette.edu
    Andy Dougherty committed with Chip Salzenberg Mar 26, 1997
  13. 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.
    
    p5p-msgid: 199703252110.WAA16038@bombur2.uio.no
    hfuru committed with Chip Salzenberg Mar 25, 1997
  14. Tiny doc fix for AutoSplit.pm

    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:
    
    p5p-msgid: rjray-9702272117.AA001223633@snakepit.ecte.uswc.uswest.com
    Randy J. Ray committed with Chip Salzenberg Mar 27, 1997
  15. 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;
    >    SAVETMPS;
    >
    >    PUSHMARK(sp);
    >    XPUSHs(sv_2mortal(newSViv(1)));
    >    PUTBACK;
    >    count = perl_call_sv(sub, G_SCALAR);
    >    SPAGAIN;
    >    if (count == 1) result = POPi;
    >    PUTBACK;
    >
    >    FREETMPS;
    >    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
    Copy().
    
    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. :-)
    
    p5p-msgid: 199703280031.TAA05711@aatma.engin.umich.edu
    Gurusamy Sarathy committed with Chip Salzenberg Mar 28, 1997
  16. [dummy merge]

    This merge exists so that the p5p version of the patch and the applied
    version are both in the history
    Chip Salzenberg committed Mar 25, 1997
  17. 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.
    
    Well,
    	(U32)(unsigned_with_same_size_as_pointers_t)&when
    wouldn't hurt, if the latter type exists:-) And the same for
    (U32)stack_sp, of course.
    
    p5p-msgid: 199703302219.AAA20998@bombur2.uio.no
    hfuru committed with Chip Salzenberg Mar 30, 1997
  18. Patch for Benchmark.pm

    (this is the same change as commit 3f1bea5, but as applied)
    Chip Salzenberg committed Mar 25, 1997
  19. Patch for Benchmark.pm

    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,
    
    p5p-msgid: 199703291504.PAA01596@crypt.compulink.co.uk
    Signed-off-by: Hugo van der Sanden <hv@crypt.compulink.co.uk>
    Hugo van der Sanden committed with Chip Salzenberg Mar 29, 1997
  20. Typo in perl.c: Printing NO_EMBED for perl -V

    p5p-msgid: 199703301922.VAA13509@furubotn.sn.no
    gisle committed with Chip Salzenberg Mar 30, 1997
  21. 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
    Spider Boardman committed with Chip Salzenberg Mar 29, 1997
  22. safefree() mismatch

    The declaration of safefree() in proto.h disagrees with the definition
    in util.c.
    
    p5p-msgid: 21338.859653381@eeyore.ibcinc.com
    rosche committed with Chip Salzenberg Mar 29, 1997
  23. Re: $whoami calculation in Sys::Syslog.pm should not be greedy

    On Fri, 28 Mar 1997 16:42:46 -0600 (CST), mer@world.evansville.net (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
    
    p5p-msgid: pz4tdu7j57.fsf@eeyore.ibcinc.com
    rosche committed with Chip Salzenberg Mar 29, 1997
  24. 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 Text.pm 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.
    					  Later.)
    
    The =items look a little strange, but OK.  Anyone got a better
    suggestion?  But remember:
    
    > From: Andy Dougherty <doughera@fractal.phys.lafayette.edu>
    >
    > 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.
    
    p5p-msgid: 199703261829.TAA17015@bombur2.uio.no
    hfuru committed with Chip Salzenberg Mar 26, 1997
  25. Fix C<print $_> in debugger

    private-msgid: 199703312355.SAA01068@monk.mps.ohio-state.edu
    Ilya Zakharevich committed with Chip Salzenberg Mar 31, 1997
  26. Allow for coexistence of various versions of perldiag.pod

    Chip Salzenberg committed with Chip Salzenberg Mar 22, 1997
  27. Eliminate unused dummy variable

    private-msgid: 199703270123.UAA25454@postman.osf.org
    dougm committed with Chip Salzenberg Mar 27, 1997
  28. hints/freebsd.sh update (don't use -lmalloc)

    Here's an update for hints/freebsd.sh. Configure should not try to use
    -lmalloc, since it's very likely an old malloc from the compatibility
    package compat1.x.
    
    p5p-msgid: 199703311417.QAA04162@cabulja.herceg.de
    Slaven Rezic committed with Chip Salzenberg Mar 31, 1997
  29. 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
    eissinger@gmd.de> 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.
    
    p5p-msgid: 199703282138.PAA28311@psa.pencom.com
    Stephen Potter committed with Chip Salzenberg Mar 28, 1997
Commits on Mar 22, 1997
  1. [inseparable changes from match from perl-5.003_94 to perl-5.003_95]

     CORE LANGUAGE CHANGES
    
    Subject: Don't compile scalar mods of aggregates, like C<@a =~ s/a/b/>
    From: Chip Salzenberg <chip@perl.com>
    Files: op.c t/op/misc.t
    
    Subject: Warn about undef magic values just like non-magic
    From: Chip Salzenberg <chip@perl.com>
    Files: ext/Opcode/Safe.pm sv.c t/lib/db-btree.t t/lib/db-hash.t t/lib/db-recno.t t/pragma/locale.t
    
     CORE PORTABILITY
    
    Subject: Win32 update (five patches)
    From: Gurusamy Sarathy <gsar@engin.umich.edu>
    Files: MANIFEST README.win32 doio.c dosish.h pp_sys.c lib/ExtUtils/Command.pm 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
    
     DOCUMENTATION
    
    Subject: INSTALL-1.8 to INSTALL-1.9 updates
    Date: Tue, 25 Mar 1997 13:52:53 -0500 (EST)
    From: Andy Dougherty <doughera@fractal.phys.lafayette.edu>
    Files: INSTALL
    Msg-ID: Pine.SOL.3.95q.970325135138.3374A-100000@fractal.lafayette.e
    
        (applied based on p5p patch as commit 9b1ae96)
    
    Subject: Document possible problems with -Mdiagnostics after upgrade
    From: Chip Salzenberg <chip@perl.com>
    Files: INSTALL
    
    Subject: Mention perldelta in INSTALL
    From: Chip Salzenberg <chip@perl.com>
    Files: INSTALL
    
    Subject: Describe pod format at top of INSTALL
    From: Chip Salzenberg <chip@perl.com>
    Files: INSTALL
    
    Subject: Document C</a *b/x> fix
    From: Chip Salzenberg <chip@perl.com>
    Files: pod/perldelta.pod
    
    Subject: pods for subroutine argument autovivication
    Date: Mon, 24 Mar 1997 07:25:21 +0000
    From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
    Files: pod/perldelta.pod pod/perlsub.pod
    Msg-ID: E0w9489-0005YT-00@ursa.cus.cam.ac.uk
    
        (applied based on p5p patch as commit db8878f)
    
    Subject: Missing item in perldiag
    Date: Sun, 23 Mar 1997 09:24:09 +0000
    From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
    Files: pod/perldiag.pod
    Msg-ID: E0w8jVZ-0005va-00@ursa.cus.cam.ac.uk
    
        (applied based on p5p patch as commit c00a529)
    
    Subject: Pod problems & fixes
    Date: Mon, 24 Mar 1997 21:31:51 +0100 (MET)
    From: Hallvard B Furuseth <h.b.furuseth@usit.uio.no>
    Files: INSTALL lib/Term/Complete.pm lib/subs.pm 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
    Msg-ID: 199703242031.VAA14997@bombur2.uio.no
    
        (applied based on p5p patch as commit 55a864f)
    
    Subject: FAQ update
    From: Nathan Torkington <gnat@prometheus.frii.com>
    Files: pod/perlfaq*.pod
    
     OTHER CORE CHANGES
    
    Subject: Improve 'prototype mismatch' warning
    From: Chip Salzenberg <chip@perl.com>
    Files: global.sym op.c pod/perldiag.pod proto.h sv.c t/comp/redef.t
    Perl 5 Porters committed with Chip Salzenberg Mar 22, 1997
  2. 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/Complete.pm lib/subs.pm pod/perlop.pod pod/perlembed.pod
           pod/perlguts.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
    hfuru committed with Chip Salzenberg Mar 24, 1997
  3. DB_File documentation fix

      Title:  "Regularize headings in DB_File documentation"
       From:  Chip Salzenberg
      Files:  ext/DB_File/DB_File.pm
      [see commit 68dc074]
    
    You forgot to fix the links to the sections titles you changed.
    
    p5p-msgid: 9703240854.AA08401@claudius.bfsec.bt.co.uk
    Paul Marquess committed with Chip Salzenberg Mar 24, 1997
  4. Missing item in perldiag

    An omission from perldiag:
    
    p5p-msgid: E0w8jVZ-0005va-00@ursa.cus.cam.ac.uk
    M.J.T. Guy committed with Chip Salzenberg Mar 23, 1997