summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* perl 4.0 patch 36: (combined patch)perl-4.0.36Larry Wall1993-02-0438-26/+12974
| | | | | | 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.
* perl 4.0 patch 35: (combined patch)Larry Wall1992-06-225-10/+27
| | | | | | | | | | | | | | | | 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/isc_3_2_3.sh.
* perl 4.0 patch 34: (combined patch)Larry Wall1992-06-1112-23/+54
| | | | | | 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...
* perl 4.0 patch 33: patch #20, continuedLarry Wall1992-06-083-118/+785
| | | | See patch #20.
* perl 4.0 patch 32: patch #20, continuedLarry Wall1992-06-0814-75/+850
| | | | See patch #20.
* perl 4.0 patch 31: patch #20, continuedLarry Wall1992-06-0817-126/+354
| | | | See patch #20.
* perl 4.0 patch 30: patch #20, continuedLarry Wall1992-06-088-40/+1342
| | | | See patch #20.
* perl 4.0 patch 29: patch #20, continuedLarry Wall1992-06-0811-109/+528
| | | | See patch #20.
* perl 4.0 patch 28: patch #20, continuedLarry Wall1992-06-0812-174/+768
| | | | See patch #20.
* perl 4.0 patch 27: patch #20, continuedLarry Wall1992-06-089-114/+1087
| | | | See patch #20.
* perl 4.0 patch 26: patch #20, continuedLarry Wall1992-06-0818-133/+451
| | | | See patch #20.
* perl 4.0 patch 25: patch #20, continuedLarry Wall1992-06-0810-131/+528
| | | | See patch #20.
* perl 4.0 patch 24: patch #20, continuedLarry Wall1992-06-083-223/+664
| | | | See patch #20.
* perl 4.0 patch 23: patch #20, continuedLarry Wall1992-06-0810-17/+1288
| | | | See patch #20.
* perl 4.0 patch 22: patch #20, continuedLarry Wall1992-06-0818-100/+570
| | | | See patch #20.
* perl 4.0 patch 21: patch #20, continuedLarry Wall1992-06-0817-35/+1282
| | | | See patch #20.
* perl 4.0 patch 20: (combined patch)Larry Wall1992-06-0813-168/+494
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ENHANCEMENTS 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 MANPAGE 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 CONFIGURATION 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 PORTABILITY 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 COMPILER 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 \- RUNTIME 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 I/O 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 $? REGEXP 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' LIBRARIES Subject: big*.pl library files upgraded Subject: better support in chat2 for multiple children Subject: &ctime didn't handle $[ != 0 Subject: find.pl got confused by unreadable directories Subject: new version of newgetopt.pl Subject: Tom's famous double-ended pipe opener, open2(), is now included Subject: support added to pwd.pl to strip automounter crud Subject: &shellwords looped on bad input, and used inefficient regular exprs Subject: termcap.pl 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 DEBUGGER Subject: support for MSDOS folded into perldb.pl 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 INTERSTICES 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 TRANSLATORS 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
* perl 4.0 patch 19: (combined patch)Larry Wall1991-11-1123-207/+393
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* perl 4.0 patch 18: patch #11, continuedLarry Wall1991-11-0522-126/+326
| | | | See patch #11.
* perl 4.0 patch 17: patch #11, continuedLarry Wall1991-11-0511-115/+350
| | | | See patch #11.
* perl 4.0 patch 16: patch #11, continuedLarry Wall1991-11-0510-121/+263
| | | | See patch #11.
* perl 4.0 patch 15: patch #11, continuedLarry Wall1991-11-0513-89/+465
| | | | See patch #11.
* perl 4.0 patch 14: patch #11, continuedLarry Wall1991-11-058-93/+362
| | | | See patch #11.
* perl 4.0 patch 13: patch #11, continuedLarry Wall1991-11-057-160/+524
| | | | See patch #11.
* perl 4.0 patch 12: patch #11, continuedLarry Wall1991-11-055-2/+1627
| | | | See patch #11.
* perl 4.0 patch 11: (combined patch)Larry Wall1991-11-059-84/+913
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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'); (1,2,3,)[$x]; $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 success. 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 clean. 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: cacheout.pl 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 complete.pl from Wayne Thompson Subject: assert.pl and exceptions.pl from Tom Christiansen Subject: added Tom's c2ph stuff Subject: getcwd.pl from Brandon S. Allbery Subject: fastcwd.pl from John Basik Subject: chat2.pl 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: perldb.pl 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.
* perl 4.0 patch 10: (combined patch)Larry Wall1991-06-0912-30/+234
| | | | | | | | | | | | | 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
* perl 4.0 patch 9: patch #4, continuedLarry Wall1991-06-0621-162/+277
| | | | See patch #4.
* perl 4.0 patch 8: patch #4, continuedLarry Wall1991-06-0620-195/+496
| | | | See patch #4.
* perl 4.0 patch 7: patch #4, continuedLarry Wall1991-06-0619-272/+534
| | | | See patch #4.
* perl 4.0 patch 6: patch #4, continuedLarry Wall1991-06-0619-219/+557
| | | | See patch #4.
* perl 4.0 patch 5: patch #4, continuedLarry Wall1991-06-0621-388/+651
| | | | See patch #4.
* perl 4.0 patch 4: (combined patch)Larry Wall1991-06-0611-253/+470
| | | | | | 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.
* perl 4.0 patch 3: Patch 1 continuedLarry Wall1991-04-112-207/+514
|
* perl 4.0 patch 2: Patch 1 continuedLarry Wall1991-04-1130-69/+266
|
* perl 4.0 patch 1: (combined patch)Larry Wall1991-04-1128-122/+335
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Subject: Configure now handles defaults much better Subject: Configure now knows if config.sh was built on this machine Subject: Configure now checks file existence more efficiently Subject: Configure now handles stupid SCO csh Configure has been heavily revised. Many of the tests that used to simply force a decision now check that decision against the previous value of the variable, and offer to let you change it. The default now is to keep the old value, so that you don't lose information from your previous run. Because of this, it's now more important to know whether, in fact, config.sh was produced on this machine and on this version of the operating system. config.sh now contains a lastuname variable which contains the output of uname -a. If this matches the current output of uname -a, Configure defaults to including the old config.sh. Otherwise not. If there is no valid config.sh, then Configure looks defaults for the current architecture in the hints/ subdirectory instead. The guesswork I've done in this section of code is phenomenal, so you'll have to instruct me where I've misparsed the output of uname (a problem in portability all of its own). Subject: Configure now differentiates getgroups() type from getgid() type Subject: Configure now figures out malloc ptr type Subject: Configure now does better on sprintf() Configure was assuming that the array of values returned from getgroups was the same type as the gids returned by other system calls. Unfortunately, reality set in. Likewise for malloc() and sprintf(), which there is only one portable way to find out the return value of: try it one way or the other, and see if it blows up. Subject: C flags are now settable on a per-file basis Subject: reduced maximum branch distance in eval.c Certain compilers and/or optimizers get bozoed out by large compilation units, or by large structures within those units. Previously, you either had to change the compiler flags for all the files, or do hairy editing in Makefile.SH and remake the Makefile, necessitating a make depend. Now there is a script called cflags.SH whose duty it is to return the proper CFLAGS for any given C file. You can change the flags in just one spot now and they will be immediately reflected in the next make (or even in the current make, if one is running). Eventually I expect that any of the hints files could modify cflags.SH, but I haven't done that yet. The particular problem of long jump offsets in eval.c has been at least partially alleviated by locating some of the labels in the middle of the function instead of at the end. This still doesn't help the poor Vax when you compile with -g, since it puts a jump to the end of the function to allocate the stack frame and then jumps back to the beginning of the function to execute it. For now Vaxen will have to stick with -O or hand assemble eval.c and teval.c with a -J switch. Subject: fixed "Bad free" error Subject: fixed debugger coredump on subroutines Subject: regexec only allocated space for 9 subexpresssions These are problems that were reported on the net and had unofficial patches. Now they have official patches. Be sure to patch a copy of your files without the unofficial patches, or the patch program will get confused. Subject: you may now use "die" and "caller" in a signal handler Someone pointed out that using die to raise an exception out of a signal handler trashed the expression value stack if the exception was caught by eval. While fixing that, I also fixed the longstanding problem that signal handlers didn't have a normal call frame, which prevented the caller function from working. Subject: fixed undefined environ problem Subject: hopefully straightened out some of the Xenix mess Subject: random cleanup in cpp namespace Just keeping up with the current progress in non-standardization. Subject: fixed failed fork to return undef as documented The open function returns undef on failed implicit forks. The Book assumed that the same was true of an explicit fork. I've made the function behave like the Book says. It's a pity there's no way to have an undefined value that returns -1 in a numeric context but false in a boolean context... Subject: generalized the yaccpar fixer some Thanks to Andy Dougherty, perly.fixer now knows how to fix SVR3 2.2's yaccpar code to do dynamic parse stack allocation. He also made it easy for other people to insert their code there. Hooray! Subject: find2perl sometimes needs to stat on the 2nd leg of a -o Subject: find2perl didn't correctly handle switches with an argument of 0 In attempting to delay the lstat to the last moment, in case a filename could be rejected on the basis of its name, find2perl neglected to take into account the fact that control might pass to the 2nd half of a -o without executing all of the 1st half, in particular without executing the lstat. find2perl was wisely removing leading zeroes from numbers that would mistakenly be interpreted as octal numbers by Perl. Unfortunately, this caused it to delete the number 0 entirely. Subject: fixed dumpvar not to dump internal debugging info Subject: substr($ENV{"PATH"},0,0) = "/foo:" didn't modify environment Subject: $foo .= <BAR> could cause core dump for certain lengths of $foo Subject: perl -de "print" wouldn't stop at the first statement Random glitchy little things. Subject: I'm at NetLabs now I'm now working for NetLabs, Inc., and I hadn't changed my address everywhere.
* perl 4.0.00: (no release announcement available)perl-4.0.00Larry Wall1991-03-21229-11696/+16303
| | | | So far, 4.0 is still a beta test version. For the last production version, look in pub/perl.3.0/kits@44.
* perl 3.0 patch #44 patch #42, continuedperl-3.044Larry Wall1991-01-1115-69/+192
| | | | See patch #42.
* perl 3.0 patch #43 patch #42, continuedLarry Wall1991-01-1113-82/+527
| | | | See patch #42.
* perl 3.0 patch #42 (combined patch)Larry Wall1991-01-1114-129/+362
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most of these patches are pretty self-explanatory. Much of this is random cleanup in preparation for version 4.0, so I won't talk about it here. A couple of things should be noted, however. First, there's a new -0 option that allows you to specify (in octal) the initial value of $/, the record separator. It's primarily intended for use with versions of find that support -print0 to delimit filenames with nulls, but it's more general than that: null ^A default CR paragraph mode file slurp mode This feature is so new that it didn't even make it into the book. The other major item is that different patchlevels of perl can now coexist in your bin directory. The names "perl" and "taintperl" are just links to "perl3.044" and "tperl3.044". This has several benefits. The perl3.044 invokes the corresponding tperl3.044 rather than taintperl, so it always runs the correct version. Second, you can "freeze" a script by putting a #! line referring to a version that it is known to work with. Third, you can put a new version out there to try out before making it the default perl. Lastly, it sells more disk drives. :-) Barring catastrophe, this will likely be the last patch before version 4.0 comes out.
* perl 3.0 patch #41 (combined patch)Larry Wall1990-11-134-21/+41
| | | | | | | | | | | | | | | | Here's the requisite dinky patch to fix the problems of the preceding large set of patches. In this case, a couple of malloc/free problems--one of which involved overrunning the end of an allocated string, and the other of which involved freeing with invalid pointers. (There was also a bug in there involving variable magicalness propagating incorrectly, which resulting in a dbm anomoly.) I updated README to mention that dnix needs to avoid -O. I added the hp malloc union overhead strut that Jan Dr{rv posted. (Eventually this should be determined by Configure, but laziness has its advantages.)
* perl 3.0 patch #40 patch #38, continuedLarry Wall1990-11-0918-77/+339
| | | | See patch #38.
* perl 3.0 patch #39 patch #38, continuedLarry Wall1990-11-0916-147/+535
| | | | See patch #38.
* perl 3.0 patch #38 (combined patch)Larry Wall1990-11-0916-140/+767
| | | | Forget the description, it's too late at night...
* perl 3.0 patch #37 (combined patch)Larry Wall1990-10-1917-69/+204
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | I tried to take the strlen of an integer on systems without wait4() or waitpid(). For some reason this didn't work too well... In hash.c there was a call to dbm_nextkey() which needed to be ifdefed on old dbm systems. A pattern such as /foo.*bar$/ was wrongly optimized to do tail matching on "foo". This was a longstanding bug that was unmasked by patch 36. Some systems have some SYS V IPC but not all of it. Configure now figures this out. Patch 36 put the user's PATH in front of Configures, but to make it work right I needed to change all calls of loc to ./loc in Configure. $cryptlib needed to be mentioned in the Makefile. Apollo 10.3 and Sun 3.5 have some compilation problems, so I mentioned them in README. Cray has weird restrictions on setjmp locations--you can't say if (result = setjmp(...)) Random typos and cleanup.
* perl 3.0 patch #36 patch #29, continuedLarry Wall1990-10-157-238/+330
| | | | See patch #29.
* perl 3.0 patch #35 patch #29, continuedLarry Wall1990-10-155-116/+408
| | | | See patch #29.
* perl 3.0 patch #34 patch #29, continuedLarry Wall1990-10-157-319/+505
| | | | See patch #29.
* perl 3.0 patch #33 patch #29, continuedLarry Wall1990-10-1510-114/+371
| | | | See patch #29.
* perl 3.0 patch #32 patch #29, continuedLarry Wall1990-10-1624-71/+974
| | | | See patch #29.