From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from minnie.tuhs.org (minnie.tuhs.org [45.79.103.53]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id d1763f5e for ; Tue, 12 Nov 2019 01:26:59 +0000 (UTC) Received: by minnie.tuhs.org (Postfix, from userid 112) id 6ACC99BAE6; Tue, 12 Nov 2019 11:26:58 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 0DE029BA98; Tue, 12 Nov 2019 11:26:26 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=pass (1024-bit key; unprotected) header.d=yaccman.com header.i=@yaccman.com header.b="uAkAIlT7"; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id 9E05493D33; Tue, 12 Nov 2019 11:26:24 +1000 (AEST) Received: from basenji.birch.relay.mailchannels.net (basenji.birch.relay.mailchannels.net [23.83.209.12]) by minnie.tuhs.org (Postfix) with ESMTPS id CB4B893D33 for ; Tue, 12 Nov 2019 11:26:23 +1000 (AEST) X-Sender-Id: dreamhost|x-authsender|scj@yaccman.com Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 2ED541A1AB1; Tue, 12 Nov 2019 01:09:22 +0000 (UTC) Received: from pdx1-sub0-mail-a14.g.dreamhost.com (100-96-169-194.trex.outbound.svc.cluster.local [100.96.169.194]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 873B31A1AE5; Tue, 12 Nov 2019 01:09:21 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|scj@yaccman.com Received: from pdx1-sub0-mail-a14.g.dreamhost.com ([TEMPUNAVAIL]. [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.5); Tue, 12 Nov 2019 01:09:22 +0000 X-MC-Relay: Junk X-MailChannels-SenderId: dreamhost|x-authsender|scj@yaccman.com X-MailChannels-Auth-Id: dreamhost X-Cooperative-Arch: 2f0eba1f2187cc20_1573520961968_1808162937 X-MC-Loop-Signature: 1573520961968:2982855095 X-MC-Ingress-Time: 1573520961968 Received: from pdx1-sub0-mail-a14.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a14.g.dreamhost.com (Postfix) with ESMTP id EA1C0A3BA8; Mon, 11 Nov 2019 17:09:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=yaccman.com; h=message-id :from:to:in-reply-to:subject:date:content-type:mime-version; s= yaccman.com; bh=anoD+qxI8psTgl3n6gUr+89Jp+Y=; b=uAkAIlT74k1Ec37O 9geFzmnW5RQnc0f/jR7zDVmN0jB8jFygxLjunfmo1GVKRbMYttXw9IgGyO7Ew1Xs TmfXNrHjmAlVHMpR/zRKkKyQxLxnZnWaD+w8Ca9f8SrcqpAXzv/30Pd3y8nDZInu TF8NZPOjqLgeFLihbt3F1Di3MQs= Received: from localhost (ip-66-33-200-4.dreamhost.com [66.33.200.4]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: scj@yaccman.com) by pdx1-sub0-mail-a14.g.dreamhost.com (Postfix) with ESMTPSA id 88D5CA3BA4; Mon, 11 Nov 2019 17:09:17 -0800 (PST) Message-Id: X-DH-BACKEND: pdx1-sub0-mail-a14 From: "Steve Johnson" To: "Arnold Robbins" , tuhs@tuhs.org X-Mailer: Atmail 7.8.0.2 X-Originating-IP: 10.35.42.221 in-reply-to: <201911112110.xABLAQfW004396@skeeve.com> Date: Mon, 11 Nov 2019 17:09:16 -0800 Content-Type: multipart/alternative; boundary="=_c76158456d78c798446b73c2ea9b263e" MIME-Version: 1.0 Subject: Re: [TUHS] History of m6? X-BeenThere: tuhs@minnie.tuhs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: The Unix Heritage Society mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" --=_c76158456d78c798446b73c2ea9b263e Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable =0ADoug can certainly give you more information, but very early in my=0A= career at Bell Labs I saw an internal memo, by (I think) Doug and Bob=0A= Morris, that had a taxonomy of macro systems based on a set of=0Adecisio= ns (things like can you define a macro inside a macro, rescan=0Aexpanded= macros looking for macro definitions and uses, etc.)=C2=A0=C2=A0 I=0Ase= em to recall there were close to a thousand different macro systems=0Apo= ssible.=C2=A0 It was a brilliant paper, but I don't think it was ever=0A= published.=C2=A0 The Assembler for the IBM 7094 had an amazing macro=0Af= acility -- I recall that someone wrote a Lisp compiler entirely in=0Amac= ros, and it would regularly recurse several hundred levels deep=0Awhile= generating code.=C2=A0 Someone told me once that Bob Morris invented=0A= macros -- I can't vouch for this.=C2=A0=C2=A0 Doug?=0A=0ASteve=0A=0A----= - Original Message -----=0AFrom: "Arnold Robbins" =0A= To:=0ACc:=0ASent:Mon, 11 Nov 2019 23:10:26 +0200=0ASubjec= t:[TUHS] History of m6?=0A=0A Hi.=0A=0A Doug McIlroy is probably the bes= t person to answer this.=0A=0A Looking at the V3 and V4 manuals, there i= s a reference to the m6=0Amacro=0A processor. The man page thereof refer= s to=0A=0A A. D. Hall, The M6 Macroprocessor, Bell Telephone Laboratorie= s, 1969=0A=0A 1. Is this memo available, even in hardcopy that could be= scanned?=0A 2. What's the history of m6, was it written in assembler? C= ?=0A 3. When and why was it replaced with m4 (written by DMR IIRC)?=0A= =0A More generally, what's the history of m6 prior to Unix?=0A=0A IIRC,= the macro processor in Software Tools was inspired by m4,=0A and in par= ticular its immediate evaluation of its arguments during=0A definition.= =0A=0A I guess I'll also ask, how widespread was the use of macro proces= sors=0A in high level languages? They were big for assembler, and PL/1 h= ad=0A a macro language, but I don't know of any other contemporary=0Alan= guages=0A that had them. Were the general purpose macro processors used= a lot?=0A E.g. with Fortran or Cobol or ...=0A=0A I'm just curious. :-)= =0A=0A Thanks,=0A=0A Arnold=0A=0A --=_c76158456d78c798446b73c2ea9b263e Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Doug can certainly give you more information, but very earl= y in my career at Bell Labs I saw an internal memo, by (I think) Doug an= d Bob Morris, that had a taxonomy of macro systems based on a set of dec= isions (things like can you define a macro inside a macro, rescan expand= ed macros looking for macro definitions and uses, etc.)=C2=A0=C2=A0 I se= em to recall there were close to a thousand different macro systems poss= ible.=C2=A0 It was a brilliant paper, but I don't think it was ever publ= ished.=C2=A0 The Assembler for the IBM 7094 had an amazing macro facilit= y -- I recall that someone wrote a Lisp compiler entirely in macros, and= it would regularly recurse several hundred levels deep while generating= code.=C2=A0 Someone told me once that Bob Morris invented macros -- I c= an't vouch for this.=C2=A0=C2=A0 Doug?

Stev= e



----- Original= Message -----
From:
"Arnold Robbins" <arnold@skeeve.= com>

To:
<tuhs@tuhs.org>
Cc:
Sent:
Mon,= 11 Nov 2019 23:10:26 +0200
Subject:
[TUHS] History= of m6?


=0AHi.

=0ADoug McIlroy is probably the best pe= rson to answer this.

=0ALooking at the V3 and V4 manuals, there i= s a reference to the m6 macro
=0Aprocessor. The man page thereof ref= ers to

=0AA. D. Hall, The M6 Macroprocessor, Bell Telephone Labor= atories, 1969

=0A1. Is this memo available, even in hardcopy that= could be scanned?
=0A2. What's the history of m6, was it written in= assembler? C?
=0A3. When and why was it replaced with m4 (written by= DMR IIRC)?

=0AMore generally, what's the history of m6 prior to= Unix?

=0AIIRC, the macro processor in Software Tools was inspire= d by m4,
=0Aand in particular its immediate evaluation of its argumen= ts during
=0Adefinition.

=0AI guess I'll also ask, how widespr= ead was the use of macro processors
=0Ain high level languages? They= were big for assembler, and PL/1 had
=0Aa macro language, but I don'= t know of any other contemporary languages
=0Athat had them. Were th= e general purpose macro processors used a lot?
=0AE.g. with Fortran o= r Cobol or ...

=0AI'm just curious. :-)

=0AThanks,

= =0AArnold

--=_c76158456d78c798446b73c2ea9b263e--