summaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* MakeMaker 3.8Tim Bunce1995-01-175-201/+1166
|
* MakeMaker 3.7Tim Bunce1994-12-291-32/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch patches the following: - lib/ExtUtils/MakeMaker.pm Most, if not all, the MakeMaker support for no perl source is now included. Recent ld and mkbootstrap patches applied. -lX11_s suffix fix applied. - Makefile.SH Fix nested module problem which affected make_ext - ext/DynaLoader/DynaLoader.pm Change error message to "Can't load module $module, dynamic loading not available in this perl" - ext/util/make_ext A very minor tweak to allow for Deeply::Nested::Modules - h2xs Major reorganisation. Mainly aimed at simplifying for later enhancements. The constant() and AUTOLOAD functions can no longer be individually enabled or disabled - it never made any sense - they need each other. Header file parsing code has been simplified (may allow prototypes to be parsed later). The .pm file always inherits from AutoLoader. I hope not to issue another MakeMaker patch till after Perl5.001! If you want to play with the (as yet untested) no-perl-source mechanism you'll need to start by doing something like this: cp ext/xsubpp ext/typemap $(PERL_LIB)/ExtUtils cp *.h $(PERL_ARCHLIB)/CORE And then try executing Makefile.PL away from (not under) the perl source code. You should get a 'Unable to locate perl source' warning and the PERL_SRC macro will be undefined. Let me know how it goes but be aware that any problems/fixes are unlikely to turn up in an official MakeMaker patch till after Perl5.001. *Please* test this patch and report your findings back to the list so Larry knows that all is well (or not :-). Best wishes for a Happy New Year to you all. Tim Bunce.
* This is my patch patch.0a for perl5.000.Tim Bunce1994-12-193-455/+1409
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [Actually, that's a lie. This is just MakeMaker 3.6. I've just usurped the letter 'a' to fit it into my patch sequence.] Andy Dougherty doughera@lafcol.lafayette.edu Dept. of Physics Lafayette College, Easton PA this patch includes: - My recently posted 'Very small patches to AutoSplit.pm and Cwd.pm' (with no changes). - A previous small patch to DynaLoader .bs handling with one addition: ! if (-f $bs) { ! if (-s $bs) { # only read file if it's not empty - A recently posted patch to hints/aix.sh (with cosmetic changes). Hopefully no further changes to MakeMaker will be needed before perl5.001. If any changes are required I intend that they will be release as patches to be applied over this one. This is the last MakeMaker jumbo patch for perl5.000. Patch and enjoy. Regards, Tim Bunce. p.s. I'll be around until about 4pm GMT tomorrow (Tuesday), after that I'm off for Christmas. This has been a great year for me. I have very much enjoyed working with the perl5-porters and I wish you all a wonderful and merry Christmas and a very happy New Year.
* perl 5.000perl-5.000Larry Wall1994-10-17283-4218/+5072
| | | | | | | | | | | [editor's note: this commit combines approximate 4 months of furious releases of Andy Dougherty and Larry Wall - see pod/perlhist.pod for details. Andy notes that; Alas neither my "Irwin AccuTrack" nor my DC 600A quarter-inch cartridge backup tapes from that era seem to be readable anymore. I guess 13 years exceeds the shelf life for that backup technology :-(. ]
* perl 5.0 alpha 9perl-5a9Larry Wall1994-05-04229-94/+2554
| | | | [editor's note: the sparc executables have not been included, and emacs backup files have been removed]
* perl 5.0 alpha 8Andy Dougherty1994-04-049-162/+1863
| | | | | [the last one taken from the September '94 InfoMagic CD; a similar style of cleanup as the previous commits was performed]
* perl 5.0 alpha 6Larry Wall1994-03-1813-83/+863
| | | | [editor's note: cleaned up from the September '94 InfoMagic CD, just like the last commit]
* perl 5.0 alpha 5Larry Wall1993-12-103-37/+34
| | | | | | [editor's note: the sparc executables have not been included, and emacs backup files and other cruft such as patch backup files have been removed. This was reconstructed from a tarball found on the September 1994 InfoMagic CD]
* perl 5.0 alpha 4Larry Wall1993-11-104-0/+104
| | | | | | | [editor's note: the sparc executables have not been included, and emacs backup files have been removed. This was reconstructed from a tarball found on the September 1994 InfoMagic CD; the date of this is approximate]
* perl 5.0 alpha 3Larry Wall1993-10-102-1/+106
| | | | | [editor's note: the sparc executables have not been included, and emacs backup files have been removed]
* perl 5.0 alpha 2perl-5a2Larry Wall1993-10-0716-81/+1201
| | | | [editor's note: from history.perl.org. The sparc executables originally included in the distribution are not in this commit.]
* perl 4.0 patch 36: (combined patch)perl-4.0.36Larry Wall1993-02-044-5/+7
| | | | | | 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 32: patch #20, continuedLarry Wall1992-06-082-10/+14
| | | | See patch #20.
* perl 4.0 patch 31: patch #20, continuedLarry Wall1992-06-082-12/+21
| | | | See patch #20.
* perl 4.0 patch 30: patch #20, continuedLarry Wall1992-06-081-3/+17
| | | | See patch #20.
* perl 4.0 patch 29: patch #20, continuedLarry Wall1992-06-081-10/+24
| | | | See patch #20.
* perl 4.0 patch 28: patch #20, continuedLarry Wall1992-06-082-49/+167
| | | | See patch #20.
* perl 4.0 patch 25: patch #20, continuedLarry Wall1992-06-082-1/+3
| | | | See patch #20.
* perl 4.0 patch 22: patch #20, continuedLarry Wall1992-06-084-37/+37
| | | | See patch #20.
* perl 4.0 patch 21: patch #20, continuedLarry Wall1992-06-082-2/+2
| | | | See patch #20.
* perl 4.0 patch 18: patch #11, continuedLarry Wall1991-11-055-70/+145
| | | | See patch #11.
* perl 4.0 patch 16: patch #11, continuedLarry Wall1991-11-051-12/+44
| | | | See patch #11.
* perl 4.0 patch 15: patch #11, continuedLarry Wall1991-11-051-3/+6
| | | | See patch #11.
* perl 4.0 patch 14: patch #11, continuedLarry Wall1991-11-052-0/+89
| | | | See patch #11.
* perl 4.0 patch 12: patch #11, continuedLarry Wall1991-11-051-0/+333
| | | | See patch #11.
* perl 4.0 patch 11: (combined patch)Larry Wall1991-11-051-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 8: patch #4, continuedLarry Wall1991-06-062-2/+49
| | | | See patch #4.
* perl 4.0 patch 7: patch #4, continuedLarry Wall1991-06-061-0/+204
| | | | See patch #4.
* perl 4.0 patch 6: patch #4, continuedLarry Wall1991-06-062-0/+210
| | | | See patch #4.
* perl 4.0 patch 1: (combined patch)Larry Wall1991-04-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-2114-534/+420
| | | | 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-112-8/+17
| | | | See patch #42.
* perl 3.0 patch #43 patch #42, continuedLarry Wall1991-01-111-0/+1
| | | | See patch #42.
* perl 3.0 patch #42 (combined patch)Larry Wall1991-01-112-7/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 #40 patch #38, continuedLarry Wall1990-11-092-7/+13
| | | | See patch #38.
* perl 3.0 patch #38 (combined patch)Larry Wall1990-11-093-0/+657
| | | | Forget the description, it's too late at night...
* perl 3.0 patch #35 patch #29, continuedLarry Wall1990-10-151-13/+78
| | | | See patch #29.
* perl 3.0 patch #33 patch #29, continuedLarry Wall1990-10-151-93/+153
| | | | See patch #29.
* perl 3.0 patch #30 patch #29, continuedLarry Wall1990-10-151-0/+44
| | | | See patch #29.
* perl 3.0 patch #27 patch #19, continuedLarry Wall1990-08-081-1/+2
| | | | See patch #19.
* perl 3.0 patch #26 patch #19, continuedLarry Wall1990-08-083-7/+8
| | | | See patch #19.
* perl 3.0 patch #25 patch #19, continuedLarry Wall1990-08-081-0/+48
| | | | See patch #19.
* perl 3.0 patch #24 patch #19, continuedLarry Wall1990-08-081-5/+33
| | | | See patch #19.
* perl 3.0 patch #23 patch #19, continuedLarry Wall1990-08-081-0/+209
| | | | See patch #19.
* perl 3.0 patch #22 patch #19, continuedLarry Wall1990-08-083-6/+35
| | | | See patch #19.
* perl 3.0 patch #21 patch #19, continuedLarry Wall1990-08-081-1/+1
| | | | See patch #19.
* perl 3.0 patch #18 patch #16, continuedLarry Wall1990-03-271-0/+148
| | | | See patch #16.
* perl 3.0 patch #17 patch #16, continuedLarry Wall1990-03-271-0/+36
| | | | See patch #16.
* perl 3.0 patch #15 (combined patch)Larry Wall1990-03-132-2/+4
| | | | | | | | | | | | | | | | | | | | | | | In patch 13, there was a fix to make the VAR=value construct in a command force interpretation by the shell. This was botched, causing an argv list to be occasionally allocated with too small a size. This problem is hidden on some machines because of BSD malloc's semantics. The lib/dumpvar.pl file was missing final 1; which made it difficult to tell if it loaded right. The lib/termcap.pl Tgetent subroutine didn't interpret ^x right due to a missing ord(). In the section of the man page that gives hints for C programmers, it falsely declared that you can't subscript array values. As of patch 13, this statement is "inoperative". The t/op.sleep test assumed that a sleep of 2 seconds would always return a value of 2 seconds slept. Depending on the load and the whimsey of the scheduler, it could actually sleep longer than 2 seconds upon occasion. It now allows sleeps of up to 10 seconds.
* perl 3.0 patch #14 patch #13, continuedLarry Wall1990-03-121-7/+12
| | | | See patch #13.