m4-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Changes to m4/doc/m4.texinfo,v [branch-1_4]


From: Eric Blake
Subject: Changes to m4/doc/m4.texinfo,v [branch-1_4]
Date: Sun, 18 Jun 2006 21:36:11 +0000

CVSROOT:        /sources/m4
Module name:    m4
Branch:         branch-1_4
Changes by:     Eric Blake <ericb>      06/06/18 21:36:09

Index: doc/m4.texinfo
===================================================================
RCS file: /sources/m4/m4/doc/m4.texinfo,v
retrieving revision 1.1.1.1.2.20
retrieving revision 1.1.1.1.2.21
diff -u -b -r1.1.1.1.2.20 -r1.1.1.1.2.21
--- doc/m4.texinfo      16 Jun 2006 03:09:14 -0000      1.1.1.1.2.20
+++ doc/m4.texinfo      18 Jun 2006 21:36:09 -0000      1.1.1.1.2.21
@@ -100,8 +100,10 @@
 @end example
 @noindent
 if you want this feature compiled in.  The current implementation
-slows down @code{m4} considerably and is hardly acceptable.  So, it
-might go away, do not count on it yet.
+slows down @code{m4} considerably and is hardly acceptable.  In the
+future, @code{m4} 2.0 will come with a different set of new features
+that provide similar capabilities, but without the inefficiencies, so
+changeword will go away and you should not count on it.
 
 @menu
 * Preliminaries::               Introduction and preliminaries
@@ -228,8 +230,8 @@
 
 Compatibility with other versions of @code{m4}
 
-* Extensions::                  Extensions in GNU m4
-* Incompatibilities::           Facilities in System V m4 not in GNU m4
+* Extensions::                  Extensions in GNU M4
+* Incompatibilities::           Facilities in System V m4 not in GNU M4
 * Other Incompatibilities::     Other incompatibilities
 
 @end detailmenu
@@ -289,22 +291,56 @@
 @node History, Invoking m4, Intro, Preliminaries
 @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''.
 
-While @code{GPM} was @emph{pure}, @code{m4} was meant to deal more
-with the true intricacies of real life: macros could be recognized
-with being pre-announced, skipping whitespace or end-of-lines was
-made easier, more constructs were builtin instead of derived, etc.
-
-Originally, @code{m4} was the engine for Rational FORTRAN preprocessor,
-that is, the @code{ratfor} equivalent of @code{cpp}.
+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.
+
+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}.
+
+Ren@'e 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).
+
+Fran@,{c}ois 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.  It was at this time that GNU Autoconf decided to require
+GNU @code{m4} as its underlying engine, since all other implementations
+of @code{m4} had too many limitations.
+
+More recently, in 2004, Paul Eggert released 1.4.1 and 1.4.2 which
+addressed some long standing bugs in the venerable 1.4 release.
+Then 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 and 1.4.4.  And in 2006, Eric Blake joined the team and
+prepared patches for the release of 1.4.5.
+
+Meanwhile, development has continued on new features for @code{m4}, such
+as dynamic module loading and additional builtins.  When complete, GNU
address@hidden 2.0 will start a new series of releases.
 
 @node Invoking m4, Bugs, History, Preliminaries
 @section Invoking @code{m4}
@@ -1986,9 +2022,10 @@
 The macro @code{changeword} and all associated functionality is
 experimental.  It is only available if the @code{--enable-changeword}
 option was given to @code{configure}, at GNU @code{m4} installation
-time.  The functionality might change or even go away in the future.
address@hidden not rely on it}.  Please direct your comments about it the
-same way you would do for bugs.
+time.  The functionality will go away in the future, to be replaced by
+other new features that are more efficient at providing the same
+capabilities.  @emph{Do not rely on it}.  Please direct your comments
+about it the same way you would do for bugs.
 @end quotation
 
 A file being processed by @code{m4} is split into quoted strings, words
@@ -2095,7 +2132,8 @@
 the macro is @emph{used}.
 
 You should note that using @code{changeword} will slow @code{m4} down
-by a factor of about seven.
+by a factor of about seven, once it is changed to something other
+than the default regular expression.
 
 @node M4wrap,  , Changeword, Input Control
 @section Saving input
@@ -3100,6 +3138,10 @@
 @result{}
 ifelse(sysval, 0, zero, non-zero)
 @result{}non-zero
+syscmd(`exit 2')
address@hidden
+sysval
address@hidden
 syscmd(`true')
 @result{}
 sysval
@@ -3410,8 +3452,8 @@
 is made to summarize these here.
 
 @menu
-* Extensions::                  Extensions in GNU m4
-* Incompatibilities::           Facilities in System V m4 not in GNU m4
+* Extensions::                  Extensions in GNU M4
+* Incompatibilities::           Facilities in System V m4 not in GNU M4
 * Other Incompatibilities::     Other incompatibilities
 @end menu
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]