perl 3.0 patch #16 (combined patch)
authorLarry Wall <lwall@jpl-devvax.jpl.nasa.gov>
Tue, 27 Mar 1990 20:20:03 +0000 (20:20 +0000)
committerLarry Wall <lwall@jpl-devvax.jpl.nasa.gov>
Tue, 27 Mar 1990 20:20:03 +0000 (20:20 +0000)
commit21d892ea46b4eaa5d8ae1c8cd325d9940deef5b3
tree47c38e54be61660494150c86347a519fbdb3634d
parent63f2c1e106a2635d888c6b582f4c59b5c0ecc7ee
perl 3.0 patch #16 (combined patch)

There is now support for compiling perl under the Microsoft C
compiler on MSDOS.  Special thanks go to Diomidis Spinellis
<dds@cc.ic.ac.uk> for this.  To compile under MSDOS, look at the
readme file in the msdos subdirectory.

As a part of this, six files will be renamed when you run
Configure.  These are config.h.SH, perl.man.[1-4] and t/op.subst.

Suns (and perhaps other machines) can't cast negative floating
point numbers to unsigned ints reasonably.  Configure now detects
this and takes appropriate action.

Configure looked for optional libraries but then didn't ever use
them, even if there was no config.sh value to override.

System V Release 4 provides us with yet another nm format for
Configure to parse.  No doubt it's "better".  Sigh.

MIPS CPUs running under Ultrix were getting configured for volatile
support, but they don't like volatile when applied to a type generated
by a typedef.  Configure now tests for this.

I've added two new perl library routines: ctime.pl from
Waldemar Kebsch and Marion Hakanson, and syslog.pl from Tom
Christiansen and me.

In subroutines, non-terminal blocks should never have arrays
requested of them, even if the subroutine call's context is
looking for an array.

Formats didn't work inside eval.  Now they do.

Any $foo++ that doesn't return a value is now optimized to ++$foo
since the latter doesn't require generation of a temporary to hold
the old value.

A self-referential printf pattern such as sprintf($s,...,$s,...)
would end up with a null as the first character of the next field.

On machines that don't support executing scripts in the kernel,
perl has to emulate that when an exec fails.  In this case,
the do_exec() routine can lose arguments passed to the script.

A memory leakage in pattern matching triggered by use of $`, $& or $'
has been fixed.

A splice that pulls up the front of an array such as splice(@array,0,$n)
can cause a duplicate free error.

The grep operator blew up on undefined array values.  It now handles
them reasonably, setting $_ to undef.

The .. operator in an array context is used to generate number
ranges.  This has been generalized to allow any string ranges that
can be generated with the magical increment code of ++.  So
you can say 'a' .. 'f', '000'..'999', etc.

The ioctl function didn't return non-zero values correctly.

Associative array slices from dbm files like @dbmvalues{'foo','bar'}
could use the same cache entry for multiple values, causing loss of
some of the values of the slice.  Cache values are now not flushed
until the end of a statement.

The do FILE operator blew up when used inside an eval, due to trying
to free the eval code it was still executing.

If you did s/^prefix// on a string, and subsequently assigned a
value that didn't contain a string value to the string, you could
get a bad free error.

One of the taint checks blew up on undefined array elements, which
showed up only when taintperl was run.

The final semicolon in program is supposed to be optional now.
Unfortunately this wasn't true when -p or -n added extra code
around your code.  Now it's true all the time.

A tail anchored pattern such as /foo$/ could cause grief if you
searched a string that was shorter than that.
Configure
MANIFEST
Makefile.SH
README
client
cmd.c
msdos/Changes.dds [new file with mode: 0644]
msdos/Makefile [new file with mode: 0644]
msdos/Wishlist.dds [new file with mode: 0644]
msdos/config.h [new file with mode: 0644]
patchlevel.h