| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
As a birthday present to Perl and Larry, through the work of the
perl1-porters, in particular Richard Clamp, resurrected here is Perl 1.0
with minimal patches for modern machines.
|
|
|
|
|
| |
The code a2p creates for the 'for (a in b)' construct ends
up assigning the wrong value to the key variable.
|
|
|
|
|
|
|
|
|
|
| |
I botched patch #12, so that split(' ') only works on the first
line of input due to unintended interference by the optimization
that was added at the same time. Yes, I tested it, but only on
one line of input. *Sigh*
Some glitches have turned up on some of the rusty pig iron out there,
so here are some unglitchifications.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
right on input
Awk ignores leading whitespace on split. Perl by default does not.
The a2p translator couldn't handle this. The fix is partly to a2p
and partly to perl. Perl now has a way to specify to split to
ignore leading white space as awk does. A2p now takes advantage of
that.
I also threw in an optimization that let's runtime patterns
compile just once if they are known to be constant, so that
split(' ') doesn't compile the pattern every time.
|
|
|
|
|
|
|
|
| |
I documented the new eval operator for patch 8 but my automatic
patch generator overlooked it for some reason.
Here's the documentation for the eval operator, along with some
other documentation changes suggested by Mark.
|
|
|
|
|
| |
There's a line in Configure that says libc=ans which should say
libc=$ans. This only shows up if libc.a isn't in /lib.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There's a #define YYDEBUG; in perl.h that ought to be
#define YYDEBUG 1. Interesting that it works the former way on
any systems at all.
Patch 2 was defective and introduced a couple of lines with missing
right parens. Learn something old every day...
Some awks can't handle
awk '$6 != "" {print substr($6,2,100)}' </tmp/Cppsym2$$ ;;
if field 6 doesn't exist. Changed conditional to NF > 5.
There was also a problem that I fixed in metaconfig that involved
Configure grepping .SH files out of MANIFEST when the .SH was only
in the commentary. This doesn't affect perl's Configure because
there aren't any comments containing .SH in the MANIFEST file.
But that's the nice thing about metaconfig--you generate a new
Configure script and also get the changes you don't need (yet).
|
|
|
|
|
|
|
|
|
|
|
| |
I didn't add an eval operator to the original perl because
I hadn't thought of any good uses for it. Recently I thought
of some. Along with creating the eval operator, this patch
introduces a symbolic debugger for perl scripts, which makes
use of eval to interpret some debugging commands. Having eval
also lets me emulate awk's FOO=bar command line behavior with
a line such as the one a2p now inserts at the beginning of
translated scripts.
|
|
|
|
|
|
|
| |
The version of malloc.c that comes with perl was not really intended
to be used everywhere--it was included mostly for debugging purposes.
It's a nice little package, however, so I'm making it optional (via
Configure) as to whether you want it or not.
|
|
|
|
|
|
| |
args.
printf "%% %d %%", 1; produces "% 1 %%", which is counterintuitive.
|
|
|
|
|
|
| |
The a2p program used index() and bcopy(), both of do not exist
everywhere. Since Configure was already figuring out about those
functions, it is fairly trivial to get a2p to make use of the info.
|
|
|
|
| |
make depend doesn't work if . isn't in your PATH.
|
|
|
|
|
|
| |
I left one file out of patch 2. This is perhaps forgivable since
it is a file that is produced automatically by metaconfig along
with Configure.
|
|
|
|
| |
Some things didn't work right on System V and Pyramids.
|
|
|
|
|
|
|
|
| |
On some systems the Configure script and C compilations get
warning messages that may scare some folks unnecessarily.
Also, use of the "redo" command if debugging is compiled in
overflows a stack on which the trace context is kept.
|
|
[ Perl is kind of designed to make awk and sed semi-obsolete. This posting
will include the first 10 patches after the main source. The following
description is lifted from Larry's manpage. --r$ ]
Perl is a interpreted language optimized for scanning arbitrary text
files, extracting information from those text files, and printing
reports based on that information. It's also a good language for many
system management tasks. The language is intended to be practical
(easy to use, efficient, complete) rather than beautiful (tiny,
elegant, minimal). It combines (in the author's opinion, anyway) some
of the best features of C, sed, awk, and sh, so people familiar with
those languages should have little difficulty with it. (Language
historians will also note some vestiges of csh, Pascal, and even
BASIC-PLUS.) Expression syntax corresponds quite closely to C
expression syntax. If you have a problem that would ordinarily use sed
or awk or sh, but it exceeds their capabilities or must run a little
faster, and you don't want to write the silly thing in C, then perl may
be for you. There are also translators to turn your sed and awk
scripts into perl scripts.
|