Talk:M4 (computer language)

"m4" or "M4"?
Isn't m4 usually written uncapitalised? This page is inconsistent within itself, and other Wikipedia pages referencing it seem to use either upper or lower case. Personally, I favour lowercase but since it would be an edit to quite a few pages I thought I'd query first... pm215 23:36, 22 Jun 2004 (UTC)


 * It is usually lower case. Ar 22:20, 31 Jul 2004 (UTC)


 * More than 11 years later I have now made it consistent. I used the capitalisation in the GNU documentation. --Mortense (talk) 19:24, 4 February 2016 (UTC)
 * Vendor specific documentation is an unreliable source if this is a second source wendor. Relevant is the primary implementation and not a clone. Schily (talk) 19:47, 4 February 2016 (UTC)
 * Schily, the original m4 evolved to be a part of the POSIX standard. The GNU m4 is not a clone, is an implementation of POSIX m4 specification.  — Preceding unsigned comment added by 2806:107E:C:F09:218:DEFF:FE2B:1215 (talk) 16:42, 26 September 2018 (UTC)
 * Whatever it is, it should still be consistent. We can't just leave it around inconsistent for another decade. --Mortense (talk) 01:22, 7 February 2016 (UTC)

At the time that m4 was written many installations had printers and teletypes which only had upper case letters, and the predominant programming languages Fortran, COBOL, Basic, Pascal, etc. where not case sensitive. At this time, almost all programming and shell languages are case sensitive, and the program is called m4, but that was not the case at the time that m4 was written. — Preceding unsigned comment added by 2806:107E:C:F09:218:DEFF:FE2B:1215 (talk) 16:59, 26 September 2018 (UTC)

Relation to assembly language programming
Why should macro processors have a special relation with assembly language? Is there anything to back up the statement that "Macro processors were prevalent when assembly language programming was the common tool of programmers"? Ar 22:50, 31 Jul 2004 (UTC)


 * It's a historical relation brought on by the development path of computers. People wrote repetitive code, realized they could write code to do the repetitions for them, and they called that resultant meta-code a "macro processor."  At the time, the code was primarily in assembly language and machine code.  Compilers, when they had them, took too long to run.  Further, higher-level languages don't typically suffer the repetitiveness of assembly (unless poorly written) therefore macro processors retain their association with the language. -- ke4roh 17:54, Sep 3, 2004 (UTC)

Code example (needs attention)
The code example is incorrect; the output is not what is displayed on the page. "bye" is repeatedly recursively matched, leading to an infinite loop -- At least this is the case with Gnu m4.


 * That is fixed now. The more important problem was that the comma was not quoted properly so that define got the wrong number of arguments.  Could someone fix the spurious spaces between the right-quotes in the replacement?  I had to insert them in order to prevent interpretation as markup. Ar 19:30, 2004 Sep 21 (UTC)


 * It's still broken for me, it seems to need an extra pair of quotes around "bye". I'm going to try to replace the example with something less fragile. PeterDeWachter 17:26, 5 May 2005 (UTC)

Correct title
''The title given to this article is incorrect due to technical limitations. The correct title is "m4 macro language".''

Why not call it "M4 macro language" instead of "M4 (computer language)"?

Brianjd 03:10, Sep 30, 2004 (UTC)

M4 is simply not correct. m4 is a command in UNIX systems, M4 is not. M4 results in " bash: M4: command not found "

Reliability of Sources
A wikignome has added this qualifier to the page: "This article relies on references to primary sources or sources affiliated with the subject, rather than references from independent authors and third-party publications. Please add citations from reliable sources. (September 2011)"

I am not sure that this qualifier is appropriate for non-contentious material, such as a description of a computer language. Naturally, for contentious matters such as "language A is better than language B" one would wish to cite third-party sources. However, for definitive information about an open-source language, the manual may be the most appropriate source, and should not automatically be deemed "unreliable".

212.159.102.166 (talk) 16:15, 19 January 2012 (UTC) January 2012


 * I Agree with you, the sources are correct and sufficient. But Wikipedia is sabotaged by many ignorant intransigent administrators, which had killed the original spirit of this collaborative project. If one attempts to remove that advice, it is reverted automatically and the volunteer is treated as a vandal. Who are the real vandals?  — Preceding unsigned comment added by 2806:107E:C:F09:218:DEFF:FE2B:1215 (talk) 17:15, 26 September 2018 (UTC)

AP-3 reference as "unknown" mini
I made the change to refer to the AP-3 as an "unknown" mini computer. Other than the mention in half a sentence in the m4 paper, I was unable to find any reference to it anywhere. I discussed this with the Computer History Museum, on The Unix Heritage Society mailing list, went through the documents on Bitsavers, Datapro reports, Datamation magazines, and had email exchanges with Brian Kernighan, Doug McIlroy, P.J. Plauger, Rob Pike, and the AT&T archivist. Nobody has any recollection or evidence of the AP-3 mini this may refer to. Brian Kernighan believes he may have written the sentence in the m4 paper, but has no memory of an AP-3. Until there is evidence of the existence of this machine, I will keep it as "unknown" on this page. If anybody finds out what this AP-3 was, please update the page! — Preceding unsigned comment added by Awb wp (talk • contribs) 07:12, 26 February 2020 (UTC)