This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU M4 source repository".
http://git.sv.gnu.org/gitweb/?p=m4.git;a=commitdiff;h=d4017710b79aef691f1eb04f438ec7fe1b5cfc50 The branch, branch-1.4 has been updated via d4017710b79aef691f1eb04f438ec7fe1b5cfc50 (commit) from 118378c9d104bf6b1f18931896f6cccc62a79591 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit d4017710b79aef691f1eb04f438ec7fe1b5cfc50 Author: Paul Eggert <[email protected]> Date: Wed Nov 14 17:39:28 2012 -0800 doc: improve prehistory discussion * doc/m4.texinfo (History): Describe M6 and related processors. From a suggestion by Doug McIlroy in <http://lists.gnu.org/archive/html/m4-discuss/2012-05/msg00004.html>. Also, improve citation quality by giving URLs and so forth. ----------------------------------------------------------------------- Summary of changes: ChangeLog | 8 ++++++++ doc/m4.texinfo | 41 ++++++++++++++++++++++++++++++++--------- 2 files changed, 40 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index b195961..b369e83 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2012-11-14 Paul Eggert <[email protected]> + + doc: improve prehistory discussion + * doc/m4.texinfo (History): Describe M6 and related processors. + From a suggestion by Doug McIlroy in + <http://lists.gnu.org/archive/html/m4-discuss/2012-05/msg00004.html>. + Also, improve citation quality by giving URLs and so forth. + 2012-09-21 Eric Blake <[email protected]> maint: drop more CVS cruft diff --git a/doc/m4.texinfo b/doc/m4.texinfo index f29d541..aff888b 100644 --- a/doc/m4.texinfo +++ b/doc/m4.texinfo @@ -349,19 +349,42 @@ debugging their @code{m4} scripts than doing real work. Beware that @cindex history of @code{m4} @cindex GNU M4, history of -@code{GPM} was an important ancestor of @code{m4}. See -C. Strachey: ``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 languages were invented early in the history of computing. In the +1950s Alan Perlis suggested that the macro language be independent of the +language being processed. Techniques such as conditional and recursive +macros, and using macros to define other macros, were described by Doug +McIlroy of Bell Labs in ``Macro Instruction Extensions of Compiler +Languages'', @emph{Communications of the ACM} 3, 4 (1960), 214--20, +@url{http://dx.doi.org/10.1145/367177.367223}. + +An important precursor of @code{m4} was GPM; see C. Strachey, +@c The title uses lower case and has no space between "macro" and "generator". +``A general purpose macrogenerator'', @emph{Computer Journal} 8, 3 +(1965), 225--41, @url{http://dx.doi.org/10.1093/comjnl/8.3.225}. GPM is +also succinctly described in David Gries's book @emph{Compiler +Construction for Digital Computers}, Wiley (1971). Strachey was a +brilliant programmer: GPM fit into 250 machine instructions! + +Inspired by GPM while visiting Strachey's Lab in 1968, McIlroy wrote a +model preprocessor in that fit into a page of Snobol 3 code, and McIlroy +and Robert Morris developed a series of further models at Bell Labs. +Andrew D. Hall followed up with M6, a general purpose macro processor +used to port the Fortran source code of the Altran computer algebra +system; see Hall's ``The M6 Macro Processor'', Computing Science +Technical Report #2, Bell Labs (1972), +@url{http://cm.bell-labs.com/cm/cs/cstr/2.pdf}. M6's source code +consisted of about 600 Fortran statements. Its name was the first of +the @code{m4} line. + +The Brian Kernighan and P.J. Plauger book @emph{Software Tools}, +Addison-Wesley (1976), describes and implements a Unix macro-processor language, which inspired Dennis Ritchie to write @code{m3}, a macro processor for the AP-3 minicomputer. Kernighan and Ritchie then joined forces to develop the original -@code{m4}, as described in ``The M4 Macro Processor'', Bell -Laboratories (1977). It had only 21 builtin macros. +@code{m4}, described in ``The M4 Macro Processor'', Bell Laboratories +(1977), @url{http://wolfram.schneider.org/bsd/7thEdManVol2/m4/m4.pdf}. +It 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 hooks/post-receive -- GNU M4 source repository
