home *** CD-ROM | disk | FTP | other *** search
- 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
-