[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Changes to m4/doc/m4.texinfo
From: |
Gary V . Vaughan |
Subject: |
Changes to m4/doc/m4.texinfo |
Date: |
Thu, 07 Jul 2005 07:14:22 -0400 |
Index: m4/doc/m4.texinfo
diff -u m4/doc/m4.texinfo:1.21 m4/doc/m4.texinfo:1.22
--- m4/doc/m4.texinfo:1.21 Sun May 8 00:37:44 2005
+++ m4/doc/m4.texinfo Thu Jul 7 11:14:21 2005
@@ -291,25 +291,53 @@
debugging their @code{m4} scripts than doing real work. Beware that
@code{m4} may be dangerous for the health of compulsive programmers.
+
@node History
@section Historical references
-The historical notes included here are fairly incomplete, and not
-authoritative at all. Please knowledgeable users help us to more
-properly write this section.
-
@code{GPM} has been an important ancestor of @code{m4}. See
C. Stratchey: ``A General Purpose Macro generator'', Computer Journal
8,3 (1965), pp. 225 ff. @code{GPM} is also succinctly described into
David Gries classic ``Compiler Construction for Digital Computers''.
+The classic B. Kernighan and P.J. Plauger: ``Software Tools'',
+Addison-Wesley, Inc. (1976) describes and implements a Unix
+macro-processor language, which inspired Dennis Ritchie to write
address@hidden, a macro processor for the AP-3 minicomputer.
+
+Kernighan and Ritchie then joined forces to develop the original
address@hidden, as described in ``The M4 Macro Processor'', Bell
+Laboratories (1977) which had only 21 builtin macros.
+
While @code{GPM} was more @emph{pure}, @code{m4} is meant to deal with
-the true intricacies of real life: macros can be recognized without being
-pre-announced, skipping whitespace or end-of-lines is easier, more constructs
-are builtin instead of derived, etc.
+the true intricacies of real life: macros can be recognized without
+being pre-announced, skipping whitespace or end-of-lines is easier,
+more constructs are builtin instead of derived, etc.
+
+Originally, the Kernighan and Plauger macro-processor, and then
address@hidden formed the engine for the Rational FORTRAN preprocessor,
+that is, the @code{Ratfor} equivalent of @code{cpp}. Later, @code{m4}
+was used as a frontend for @code{Ratfor}, @code{C} and @code{Cobol}.
+
+Rene' Seindal released his implementation of @code{m4}, GNU @code{m4},
+in 1990, with the aim of removing the artificial limitations in many
+of the traditional @code{m4}'s: like maximum line length, macro size,
+number of macros and so on.
+
+The late Professor A. Dain Samples described and implemented a further
+evolution in the form of @code{M5}: ``User's Guide to the M5 Macro
+Language: 2nd edition'', Electronic Announcement on comp.compilers
+newsgroup (1992).
+
+Francois Pinard took over maintainance of GNU @code{m4} in 1992, until
+1994 when he released GNU @code{m4} 1.4, which was the stable release
+for 10 years. In 2004, Paul Eggert released 1.4.1 and 1.4.2 which
+addressed some long standing bugs in the venerable 1.4 release.
+
+Most recently, in 2005 Gary V. Vaughan collected together the many
+patches to GNU @code{m4} 1.4 that were floating around the net and
+released 1.4.3.
-Originally, @code{m4} was the engine for Rational FORTRAN preprocessor,
-that is, the @code{ratfor} equivalent of @code{cpp}.
@node Invoking m4
@section Invoking @code{m4}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Changes to m4/doc/m4.texinfo,
Gary V . Vaughan <=