Switch branches/tags
Commits on Feb 4, 1993
  1. perl 4.0 patch 36: (combined patch)

    Larry Wall committed Feb 4, 1993
    Since Ed Barton sent me a patch for the malignent form of "Malformed
    cmd links", I finally broke down and made a patch for the various
    other little things that have been accumulating on version 4.
Commits on Jun 22, 1992
  1. perl 4.0 patch 35: (combined patch)

    Larry Wall committed Jun 22, 1992
    Subject: bad interaction between backslash and hyphen in tr///
    Among other things, tr/\040-\126/ / was not doing a character range,
    due to a earlier botched fix to make \- work right.
    Subject: Configure test for presence of nroff was wrong
    If Loc doesn't find nroff, it sets $nroff to 'nroff'.  The man
    page test was tesing against the null string.
    Subject: installperl error message printed file mode in decimal, not octal
    A real, honest-to-goodnes nit.
    Subject: fixed up some filenames in MANIFEST
    Erroneously contained "pstruct", omitted hints/
Commits on Jun 11, 1992
  1. perl 4.0 patch 34: (combined patch)

    Larry Wall committed Jun 11, 1992
    Here's the typical cleanup patch that follows any large
    set of patches.  My testing organization is either too large
    or too small, depending on how you look at it, sigh...
Commits on Jun 8, 1992
  1. perl 4.0 patch 33: patch #20, continued

    Larry Wall committed Jun 8, 1992
    See patch #20.
  2. perl 4.0 patch 32: patch #20, continued

    Larry Wall committed Jun 8, 1992
    See patch #20.
  3. perl 4.0 patch 31: patch #20, continued

    Larry Wall committed Jun 8, 1992
    See patch #20.
  4. perl 4.0 patch 30: patch #20, continued

    Larry Wall committed Jun 8, 1992
    See patch #20.
  5. perl 4.0 patch 29: patch #20, continued

    Larry Wall committed Jun 8, 1992
    See patch #20.
  6. perl 4.0 patch 28: patch #20, continued

    Larry Wall committed Jun 8, 1992
    See patch #20.
  7. perl 4.0 patch 27: patch #20, continued

    Larry Wall committed Jun 8, 1992
    See patch #20.
  8. perl 4.0 patch 26: patch #20, continued

    Larry Wall committed Jun 8, 1992
    See patch #20.
  9. perl 4.0 patch 25: patch #20, continued

    Larry Wall committed Jun 8, 1992
    See patch #20.
  10. perl 4.0 patch 24: patch #20, continued

    Larry Wall committed Jun 8, 1992
    See patch #20.
  11. perl 4.0 patch 23: patch #20, continued

    Larry Wall committed Jun 8, 1992
    See patch #20.
  12. perl 4.0 patch 22: patch #20, continued

    Larry Wall committed Jun 8, 1992
    See patch #20.
  13. perl 4.0 patch 21: patch #20, continued

    Larry Wall committed Jun 8, 1992
    See patch #20.
  14. perl 4.0 patch 20: (combined patch)

    Larry Wall committed Jun 8, 1992
    Subject: relaxed requirement for semicolon at the end of a block
    Subject: scalar keys %array now counts keys for you
    Subject: added ... as variant on ..
    Subject: get*by* routines now return something useful in a scalar context
    Subject: form feed for formats is now specifiable via $^L
    Subject: PERLLIB now supports multiple directories
    Subject: paragraph mode now skips extra newlines automatically
    Subject: documented that numbers may contain underline
    Subject: clarified that DATA may only be read from main script
    Subject: documented need for 1; at the end of a required file
    Subject: extended bracket-style quotes to two-arg operators: s()() and tr()()
    Subject: documented PERLLIB and PERLDB
    Subject: documented limit on size of regexp
    Subject: bcopy() and memcpy() now tested for overlap safety
    Subject: isascii() may now be supplied by a library routine
    Subject: Configure now allows optional continuation with files missing
    Subject: many more hints files added
    Subject: many more hints added
    Subject: hints now auto selected on uname -s as well as uname -m
    Subject: OSF/1 support added
    Subject: Configure growing-library-list bug fixed
    Subject: seekdir(), telldir() and rewinddir() now checked for independently
    Subject: cray didn't give enough memory to /bin/sh
    Subject: perl -P now uses location of sed determined by Configure
    Subject: SH files didn't work well with symbolic links
    Subject: makefiles now display new shift/reduce expectations
    Subject: support added to installperl for cross-compilation
    Subject: a2p was installed unexecutable
    Subject: installperl didn't warn on failed manpage installation
    Subject: disabled cpp test if cppstdin not yet installed
    Subject: O_PIPE conflicted with Atari
    Subject: config.H updated to reflect more recent config.h
    Subject: removed implicit int declarations on functions
    Subject: added Atari ST portability
    Subject: some machines don't define ENOTSOCK in errno.h
    Subject: added explicit time_t support
    Subject: alternate config.h files upgraded
    Subject: new OS/2 support
    Subject: various error messages have been clarified
    Subject: the switch optimizer didn't do anything in subroutines
    Subject: clarified debugging output for literals and double-quoted strings
    Subject: new warning for use of x with non-numeric right operand
    Subject: illegal lvalue message could be followed by core dump
    Subject: new warning for ambiguous use of unary operators
    Subject: eval "1 #comment" didn't work
    Subject: semantic compilation errors didn't abort execution
    Subject: an expression may now start with a bareword
    Subject: if {block} {block} didn't work any more
    Subject: "$var{$foo'bar}" didn't scan subscript correctly
    Subject: an EXPR may now start with a bareword
    Subject: print $fh EXPR can now expect term rather than operator in EXPR
    Subject: new warning on spurious backslash
    Subject: new warning on missing $ for foreach variable
    Subject: "foo"x1024 now legal without space after x
    Subject: new warning on print accidentally used as function
    Subject: 2. now eats the dot
    Subject: <@ARGV> now notices @ARGV
    Subject: tr/// now lets you say \-
    Subject: an eval block containing a null block or statement could dump core
    Subject: modulus with highest bit in left operand set didn't always work
    Subject: join() now pre-extends target string to avoid excessive copying
    Subject: subroutines didn't localize $`, $&, $', $1 et al correctly
    Subject: usersub routines didn't reclaim temp values soon enough
    Subject: ($<,$>) = ... didn't work on some architectures
    Subject: fixed memory leak on system() for vfork() machines
    Subject: @ in unpack failed too often
    Subject: slice on null list in scalar context returned random value
    Subject: splice with negative offset didn't work with $[ = 1
    Subject: fixed some memory leaks in splice
    Subject: dbmclose(%array) didn't work
    Subject: delete could cause %array to give too low a count of buckets filled
    Subject: hash tables now split only if the memory is available to do so
    Subject: realloc(0, size) now does malloc in case library routines call it
    Subject: running taintperl explicitly now does checks even if $< == $>
    Subject: fixed memory leak in doube-quote interpretation
    Subject: a splice on non-existent array elements could dump core
    Subject: tr/stuff// wasn't working right
    Subject: new warnings for failed use of stat operators on filenames with \n
    Subject: wait failed when STDOUT or STDERR reopened to a pipe
    Subject: end of file latch not reset on reopen of STDIN
    Subject: seek(HANDLE, 0, 1) went to eof because of ancient Ultrix workaround
    Subject: h_errno now accessible via $?
    Subject: pattern modifiers i and o didn't interact right
    Subject: g pattern modifer sometimes returned extra values
    Subject: m/$pattern/g didn't work
    Subject: /^stuff/ wrongly assumed an implicit $* == 1
    Subject: /x{0}/ was wrongly interpreted as /x{0,}/
    Subject: added \W, \S and \D inside /[...]/
    Subject: pattern modifiers i and g didn't interact right
    Subject: in some cases $` and $' didn't get set by match
    Subject: made /\$$foo/ look for literal '$foo'
    Subject: big*.pl library files upgraded
    Subject: better support in chat2 for multiple children
    Subject: &ctime didn't handle $[ != 0
    Subject: got confused by unreadable directories
    Subject: new version of
    Subject: Tom's famous double-ended pipe opener, open2(), is now included
    Subject: support added to to strip automounter crud
    Subject: &shellwords looped on bad input, and used inefficient regular exprs
    Subject: didn't parse termcap terminal names right
    Subject: timelocal could loop on bad input
    Subject: timelocal now calculates DST itself
    Subject: &getcap eventually dumped core in bsdcurses
    Subject: support for MSDOS folded into
    Subject: perldb couldn't debug file containing '-', such as STDIN designator
    Subject: the debugger now warns you on lines that can't set a breakpoint
    Subject: the debugger made perl forget the last pattern used by //
    Subject: fixed double debug break in foreach with implicit array assignment
    Subject: debugger sometimes displayed wrong source line
    Subject: Perl now distinguishes overlapped copies from non-overlapped
    Subject: fixed confusion between a *var's real name and its effective name
    Subject: deleted some minor memory leaks
    Subject: couldn't require . files
    Subject: -e 'cmd' no longer fails silently if /tmp runs out of space
    Subject: function key support added to curses.mus
    Subject: find2perl assumed . in PATH
    Subject: find2perl didn't output portable startup code
    Subject: find2perl didn't always stat at the right time
    Subject: s2p didn't output portable startup code
    Subject: s2p didn't translate s/pat/\&/ or s/pat/\$/ or s/pat/\\1/ right
    Subject: in a2p, getline should allow variable to be array element
    Subject: in a2p, now warns about spurious backslashes
    Subject: in a2p, now allows [ to be backslashed in pattern
    Subject: in a2p, now allows numbers of the form 2.
    Subject: in a2p, simplified the filehandle model
    Subject: in a2p, made RS="" translate to $/ = "\n\n"
    Subject: in a2p, do {...} while ... was missing some reconstruction code
Commits on Nov 11, 1991
  1. perl 4.0 patch 19: (combined patch)

    Larry Wall committed Nov 11, 1991
    Ok, here's the cleanup patch I suggested you wait for.  Have at it...
    Subject: added little-endian pack/unpack options
    This is the only enhancement in this patch, but it seemed unlikely
    to bust anything else, and added functionality that it was very
    difficult to do any other way.  Compliments of David W. Sanderson.
    Subject: op/regexp.t failed from missing arg to bcmp()
    Subject: study was busted by 4.018
    Subject: sort $subname was busted by changes in 4.018
    Subject: default arg for shift was wrong after first subroutine definition
    Things that broke in 4.018.  Shame on me.
    Subject: do {$foo ne "bar";} returned wrong value
    A bug of long standing.  How come nobody saw this one?  Or if you
    did, why didn't you report it before now?  Or if you did, why did
    I ignore you?  :-)
    Subject: some machines need -lsocket before -lnsl
    Subject: some earlier patches weren't propagated to alternate 286 code
    Subject: compile in the x2p directory couldn't find cppstdin
    Subject: more hints for aix, isc, hp, sco, uts
    Subject: installperl no longer updates unchanged library files
    Subject: uts wrongly defines S_ISDIR() et al
    Subject: too many preprocessors can't expand a macro right in #if
    The usual pastiche of portability kludges.
    Subject: deleted some unused functions from usersub.c
    And fixed the spelling of John Macdonald's name, and included his
    suggested workaround for a certain vendor's stdio bug...
    Subject: added readdir test
    Subject: made op/groups.t more reliable
    Subject: added test for sort $subname to op/sort.t
    Subject: added some hacks to op/stat.t for weird filesystem architectures
    Improvements (hopefully) to the regression tests.
Commits on Nov 5, 1991
  1. perl 4.0 patch 18: patch #11, continued

    Larry Wall committed Nov 5, 1991
    See patch #11.
  2. perl 4.0 patch 17: patch #11, continued

    Larry Wall committed Nov 5, 1991
    See patch #11.
  3. perl 4.0 patch 16: patch #11, continued

    Larry Wall committed Nov 5, 1991
    See patch #11.
  4. perl 4.0 patch 15: patch #11, continued

    Larry Wall committed Nov 5, 1991
    See patch #11.
  5. perl 4.0 patch 14: patch #11, continued

    Larry Wall committed Nov 5, 1991
    See patch #11.
  6. perl 4.0 patch 13: patch #11, continued

    Larry Wall committed Nov 5, 1991
    See patch #11.
  7. perl 4.0 patch 12: patch #11, continued

    Larry Wall committed Nov 5, 1991
    See patch #11.
  8. perl 4.0 patch 11: (combined patch)

    Larry Wall committed Nov 5, 1991
    Subject: added eval {}
    Subject: eval 'stuff' now optimized to eval {stuff}
    This set of patches doesn't have many enhancements but this is
    one of them.  The eval operator has two distinct semantic functions.
    First, it runs the parser on some random string and executes it.
    Second, it traps exceptions and returns them in $@.  There are times
    when you'd like to get the second function without the first.  In
    order to do that, you can now eval a block of code, which is parsed
    like ordinary code at compile time, but which traps any run-time
    errors and returns them in the $@ variable.  For instance, to
    trap divide by zero errors:
    	eval {
    	    $answer = $foo / $bar;
    	warn $@ if $@;
    Since single-quoted strings don't ever change, they are optimized
    to the eval {} form the first time they are encountered at run-time.
    This doesn't happen too often, though some of you have written things
    like eval '&try_this;'.  However, the righthand side of s///e is
    evaluated as a single-quoted string, so this construct should run
    somewhat faster now.
    Subject: added sort {} LIST
    Another enhancement that some of you have been hankering for.
    You can now inline the sort subroutine as a block where the
    subroutine name used to go:
    	@articles = sort {$a <=> $b;} readdir(DIR);
    Subject: added some support for 64-bit integers
    For Convexen and Crayen, which have 64-bit integers, there's
    now pack, unpack and sprintf support for 64-bit integers.
    Subject: sprintf() now supports any length of s field
    You can now use formats like %2048s and %-8192.8192s.  Perl will
    totally bypass your system's sprintf() function on these.  No,
    you still probably can't say %2048d.  No, I'm not going to
    change that any time soon.
    Subject: substr() and vec() weren't allowed in an lvalue list
    Subject: extra comma at end of list is now allowed in more places (Hi, Felix!)
    Subject: underscore is now allowed within literal octal and hex numbers
    Various syntactic relaxations.  You can now get away with
    	(substr($foo,0,3), substr($bar,0,3)) = ('abc', 'def');
    	$addr = 0x1a20_ff0b;
    Subject: safe malloc code now integrated into Perl's malloc when possible
    To save a bunch of subroutine calls.  If you use your system's
    malloc it still has to use wrappers.
    Subject: added support for dbz
    By saying "make dbzperl" you can make a copy of Perl that can
    access C news's dbz files.  You still have to follow the dbz rules,
    though, if you're going to try to write a dbz file.
    Subject: there are now subroutines for calling back from C into Perl
    Subject: usub/curses.mus now supports SysV curses
    More C linkage support.  I still haven't got Perl embeddable, but
    we're getting there.  That's too big an enhancement for this
    update, in which I've been trying to stick to bug fixes, with some
    Subject: prepared for ctype implementations that don't define isascii()
    A larger percentage of this update consists of code to do
    consistent ctype processing whether or not <ctype.h> is 8-bit
    Subject: /$foo/o optimizer could access deallocated data
    Subject: certain optimizations of //g in array context returned too many values
    Subject: regexp with no parens in array context returned wacky $`, $& and $'
    Subject: $' not set right on some //g
    Subject: grep of a split lost its values
    Subject: # fields could write outside allocated memory
    Subject: length($x) was sometimes wrong for numeric $x
    Recently added or modified stuff that you kind of expect to be
    a bit flaky still.  Well, I do...
    Subject: passing non-existend array elements to subrouting caused core dump
    Subject: "foo" x -1 dumped core
    Subject: truncate on a closed filehandle could dump
    Subject: a last statement outside any block caused occasional core dumps
    Subject: missing arguments caused core dump in -D8 code
    Subject: could dump core from invalid comparison operator
    Subject: *foo = undef coredumped
    Subject: warn '-' x 10000 dumped core
    Subject: index("little", "longer string") could visit faraway places
    A bunch of natty little bugs that you wouldn't generally run into
    unless you're trying to be coy.
    Subject: hex() didn't understand leading 0x
    It wasn't documented that it should work, but oct() understands 0x,
    so why not hex()?  I dunno...
    Subject: "foo\0" eq "foo" was sometimes optimized to true
    Subject: eval confused by string containing null
    Yet more holdovers from the time before Perl was 8-bit clean.
    Subject: foreach on null list could spring memory leak
    Subject: local(*FILEHANDLE) had a memory leak
    Kind of slow leaks, as leaks go.  Still...
    Subject: minimum match length calculation in regexp is now cumulative
    More substitutions can be done in place now because Perl knows
    that patterns like in s/foo\s+bar/1234567/ have to match a
    certain number of characters total.  It used to be on that
    particular pattern that it only knew that it had to match at
    least 3 characters.  Now it know it has to match at least 7.
    Subject: multiple reallocations now avoided in 1 .. 100000
    You still don't want to say 1 .. 1000000, but at least it will
    refrain from allocating intermediate sized blocks while it's
    constructing the value, and won't do the extra copies implied
    by realloc.
    Subject: indirect subroutine calls through magic vars (e.g. &$1) didn't work
    Subject: defined(&$foo) and undef(&$foo) didn't work
    Subject: certain perl errors should set EBADF so that $! looks better
    Subject: stats of _ forgot whether prior stat was actually lstat
    Subject: -T returned true on NFS directory
    Subject: sysread() in socket was substituting recv()
    Subject: formats didn't fill their fields as well as they could
    Subject: ^ fields chopped hyphens on line break
    Subject: -P didn't allow use of #elif or #undef
    Subject: $0 was being truncated at times
    Subject: forked exec on non-existent program now issues a warning
    Various things you'd expect to work the way you expect, but
    didn't when you did, or I did, or something...
    Subject: perl mistook some streams for sockets because they return mode 0 too
    Subject: reopening STDIN, STDOUT and STDERR failed on some machines
    Problems opening files portably.  So what's new?
    Subject: cppstdin now installed outside of source directory
    Subject: installperl now overrides installer's umask
    People who used cppstdin for the cpp filter or who had their
    umask set to 700 will now be happier.  (And Configure will now
    prefer /lib/cpp over cppstdin like it used to.  If this gives
    your machine heartburn because /lib/cpp doesn't set the symbols
    it should, write a hints file to poke them into ccflags.)
    Subject: initial .* in pattern had dependency on value of $*
    An initial .* was optimized to have a ^ on the front to avoid retrying
    when we know it won't match.  Unfortunately this implicit ^ was
    paying attention to $*, which it shouldn't have been.
    Subject: certain patterns made use of garbage pointers from uncleared memory
    Many of you saw this as a failure in t/op/pat.t.
    Subject: perl now issues warning if $SIG{'ALARM'} is referenced
    Since the book mentions "SIGALARM", I thought we needed this.
    Subject: solitary subroutine references no longer trigger typo warnings
    You can now use -w (more) profitably on programs that require
    other files.  I figured if you mistype a subroutine name you'll
    get a fatal error anyway, unlike a variable, which just defaults
    to being undefined.
    Subject: $foo .= <BAR> could overrun malloced memory
    Good old-fashioned bug.
    Subject: \$ didn't always make it through double-quoter to regexp routines
    Subject: \x and \c were subject to double interpretation in regexps
    Subject: nested list operators could miscount parens
    Subject: sort eval "whatever" didn't work
    Syntactic misfeatures of various sorts.
    Subject: find2perl produced incorrect code for -group
    Subject: find2perl could be confused by names containing whitespace
    Subject: in a2p, split on whitespace produced extra null field
    Translator stuff.
    Subject: new from Wayne Thompson
    Subject: and from Tom Christiansen
    Subject: added Tom's c2ph stuff
    Subject: from Brandon S. Allbery
    Subject: from John Basik
    Subject: from Randal L. Schwartz
    New contributed stuff.  Thanks!
    (Not that a lot of the other stuff isn't contributed too...)
    Subject: debugger got confused over nested subroutine definitions
    Subject: once-thru blocks didn't display right in the debugger
    Subject: modified to run within emacs in perldb-mode
    Debugger stuff.  The first two were caused by not saving line
    numbers at exactly the right moment.
    Subject: documented meaning of scalar(%foo)
    I also updated the Errata section of the man page.
    Subject: various portability fixes
    Subject: random cleanup
    Subject: saberized perl
    Type casts, saber warning message suppression, hints files and various
    metaconfig fiddlehoods.
Commits on Jun 9, 1991
  1. perl 4.0 patch 10: (combined patch)

    Larry Wall committed Jun 9, 1991
    Subject: pack(hh,1) dumped core
    Subject: read didn't work from character special files open for writing
    Subject: close-on-exec wrongly set on system file descriptors
    Subject: //g only worked first time through
    Subject: perl -v printed incorrect copyright notice
    Subject: certain pattern optimizations were botched
    Subject: documented some newer features in addenda
    Subject: $) and $| incorrectly handled in run-time patterns
    Subject: added tests for case-insensitive regular expressions
    Subject: m'$foo' now treats string as single quoted
Commits on Jun 6, 1991
  1. perl 4.0 patch 9: patch #4, continued

    Larry Wall committed Jun 6, 1991
    See patch #4.
  2. perl 4.0 patch 8: patch #4, continued

    Larry Wall committed Jun 6, 1991
    See patch #4.
  3. perl 4.0 patch 7: patch #4, continued

    Larry Wall committed Jun 6, 1991
    See patch #4.
  4. perl 4.0 patch 6: patch #4, continued

    Larry Wall committed Jun 6, 1991
    See patch #4.
  5. perl 4.0 patch 5: patch #4, continued

    Larry Wall committed Jun 6, 1991
    See patch #4.
  6. perl 4.0 patch 4: (combined patch)

    Larry Wall committed Jun 6, 1991
    Random patches, mostly bugs and portability stuff.  //g is the
    only major new feature.  Additionally, there is now an alternate
    license you can distribute Perl under.
Commits on Apr 11, 1991
  1. perl 4.0 patch 3: Patch 1 continued

    Larry Wall committed Apr 11, 1991
  2. perl 4.0 patch 2: Patch 1 continued

    Larry Wall committed Apr 11, 1991