home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 1
/
GoldFishApril1994_CD1.img
/
d1xx
/
d160
/
m4
/
readme
< prev
next >
Wrap
Text File
|
1988-10-02
|
3KB
|
81 lines
What you have here is a completely PD implementation of
M4. It was originally written for the GNU project.
This version was the last version before a major re-write
took place.
Pd M4 is based on software tools macro, as described in the
two tools books by Kernighan and Plauger. Although some
serious changes have been made, this version inherits the basic
design problems of the original, hence the ugliness of the
underlying code. [GNU version of this processor is re-designed
in a much cleaner fashion, and is expected to be out before
1988. GNU version also includes an extensive texinfo document.]
PDness:
This code *is* PD. You (public) have all the rights to the code.
[But this also means you (singular) do not have any *extra*
rights to the code, hence it is impossible for you to restrict
the use and distribution of this code in any way.]
Dedication:
This posting is a dedication to an old 750 that started out
running 4.1BSD and had 1.5 meg, 1 dz11, and 2 Rk07 drives.
It was named yetti [sic] by accident, and was managed by the
author until its retirement few months ago. [the name yetti
now identifies a different machine]
Distribution + misc:
The distribution includes a small test suite, the sources and
a man page. texinfo document is not included. The makefile is
pretty simple. See the makefile for configuration options.
Try "make time" for some timing comparisons between your un*x
m4 and the pd m4. [It should be slighly slower than V7 m4, and
slightly faster than SV m4]. Make sure to set MBIN to indicate
the location of un*x m4. See the test suite (test.m4) for some
additional comments about pd m4 vs un*x m4.
Some thoughts:
M4 is a neat macro processor but probably a bit outdated by
now. It does not need gratuitous additions, or "features", but
a complete re-write. As it stands, it is powerful enough for
most macro processing needs. We have, for example, used it to
build a configuration language for DECNET under VMS. It can
be a handy software engineering tool under most circumstances,
and can displace a lot of meaningless little hacks written in
C, pascal or whatever. [See some net postings for references.]
Suggestions for hacking:
If you want to hack M4 further, you may wish to implement the
SV m4 "trace" facility, and extended (5-char) Comment/Quote
definitions. This version also needs some dynamicity for its
data structures, and the ability to handle multiple file names
in the command line. If you want to add "features", you may wish
to first think about implementing the "feature" as an M4 macro.
If you really want to elevate this processor into a more state-of
the-art tool, than you should probably re-write it. [But I have
already done that, so you may wish to wait for the GNU version to
get a head start.]
Feedback:
If you have any important fixes and/or speed improvements, I am
much interested, since my new version inherits some code from this
version. I am also interested in hearing about any unique applica-
tions of M4. I am not interested in gratuitous hacks or "neat"
kitchen-sink features.
Contact:
Usenet: [decvax|ihnp4]!utzoo!yetti!oz ||
...seismo!mnetor!yetti!oz
Bitnet: oz@[yulibra|yuyetti].BITNET
Phonet: [416] 736-5257 x 3976
enjoy. oz