Renovation of Perl 1.0
By Christophe Staiesse, 3 January 2014
The aim of this project is to adapt the source code of Perl 1.0 to make it
compilable on modern operating systems.
It is based on Perl 1.0 patchlevel 29 that I have reconstituted from 39 Usenet
articles (see Usenet/ directory).
The project is hosted at bitbucket: https://bitbucket.org/chastai/perl-1.0
Check the git history or the file perl.diff to see the changes made.
The source code of Perl 1 is not difficult to follow: the front-end (perl.y
and perly.c) generates an abstract syntax tree from a Perl program. The tree is
then executed by the interpreter in cmd.c.
The debugger (perldb) is also interesting to study. To use it, you'll need to
assign the $perl variable to the correct path to the perl executable
(e.g.: "./perl"). Type h to get help.
Perl 1 should compile and run on BSD systems, Linux, Mac OS X and other
Unix-like operating systems.
It has been successfully tested on Debian Wheezy, FreeBSD 9.2, Mac OS X Lion
and OpenBSD 5.4. All tests passed but many warnings are still generated by the
$ ./Configure -d (or ./Configure to answer the questions manually)
$ make depend (if not already done by Configure)
$ make test
If you need to regenerate Configure (and config_h.SH and confmagic.h):
- Install dist (which contains metaconfig). I would advise to get the latest
version available on Sourceforge: http://sourceforge.net/projects/dist/.
- Run packinit
- Run metaconfig -M
Read the manual to have an idea of what features are supported in Perl 1. The
plain text version is in perl.man.txt.
- Make it run on Windows (with Cygwin?)
- Test a2p (Awk to Perl converter) and s2p (Sed to Perl
converter) in the x2p/ directory.
- Fix bugs and write additional tests.