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=-1.0 required=5.0 tests=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 1e7a166f for ; Wed, 13 Nov 2019 07:39:29 +0000 (UTC) Received: by minnie.tuhs.org (Postfix, from userid 112) id 068CE9C112; Wed, 13 Nov 2019 17:39:28 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 23ECC9B5A3; Wed, 13 Nov 2019 17:38:48 +1000 (AEST) Received: by minnie.tuhs.org (Postfix, from userid 112) id 977509B5A3; Wed, 13 Nov 2019 17:38:45 +1000 (AEST) Received: from freefriends.org (freefriends.org [96.88.95.60]) by minnie.tuhs.org (Postfix) with ESMTPS id 2E24493F9E for ; Wed, 13 Nov 2019 17:38:45 +1000 (AEST) X-Envelope-From: arnold@skeeve.com Received: from freefriends.org (freefriends.org [96.88.95.60]) by freefriends.org (8.14.7/8.14.7) with ESMTP id xAD7cekI014588 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 13 Nov 2019 00:38:40 -0700 Received: (from arnold@localhost) by freefriends.org (8.14.7/8.14.7/Submit) id xAD7ceUS014587; Wed, 13 Nov 2019 00:38:40 -0700 From: arnold@skeeve.com Message-Id: <201911130738.xAD7ceUS014587@freefriends.org> X-Authentication-Warning: frenzy.freefriends.org: arnold set sender to arnold@skeeve.com using -f Date: Wed, 13 Nov 2019 00:38:40 -0700 To: tuhs@tuhs.org, doug@cs.dartmouth.edu References: <201911121515.xACFFf0V095921@tahoe.cs.Dartmouth.EDU> In-Reply-To: <201911121515.xACFFf0V095921@tahoe.cs.Dartmouth.EDU> User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit 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" Thanks Doug! So Unix m6 was a port of the Fortran version, it sounds like. Q1. When and why was it dropped from Unix? When and why did m4 enter the picture? Q2. What's the history of Fortran on Unix? Clearly there was a lot of Fortran going on in 1127 (cf. BWK's book, ratfor, software tools ...) Who wrote the first Unix fortran compiler? Much thanks, Arnold Doug McIlroy wrote: > > M6 originated as a porting tool for the Fortran source code > for Stan Brown's Altran language for algebraic computation. M6 > itself was originally written in highly portable Fortran. > > Arnold asked, "How widespread was the use of macro processors > in high level languages? They were big for assembler, and > PL/1 had a macro language, but I don't know of any other > contemporary languages that had them." > > Understanding "contemporary" to mean pre-C, I agree. Cpp, > a particularly trivial macroprocessor, has been heavily used > ever since--even for other languages, e.g. Haskell. > > The rumor that Bob Morris invented macros is off the > mark. Macros were in regular use by the time he joined Bell > Labs. He did conceive an interesting "form-letter generator", > called "form", and an accompanying editor "fed". A sort of > cross between macros and Vannevar Bush's hypothetical memex > repository, these were among the earliest Unix programs and > appeared in the manual from v1 through v6. > > Off-topic warning: pre-Unix stories follow. > > Contrary to an assertion on cat-v.org, I did not invent macros > either. In 1959 Doug Eastwood and I, at the suggestion of > George Mealy, created the macro facility for SAP (SHARE assmbly > program) for the IBM 704. However, the idea was in the air at > the time. In particular, we knew that GE already had macros, > though we knew no details about their syntax or semantics. > > There were various attempts in the 1960s to build languages by > macro extension. The approach turned out to entail considerable > social cost: communication barriers arise when everyone > can easily create his own dialect. A case in point: I once > had a bright young mathematician summer employee who wrote > wonderfully concise code by heaping up macro definitions. The > result was inscrutable. > > Macros caught on in a big way in the ESS labs at Indian Hill. > With a macro-defined switching language, code builds were > slow. One manager there boasted that his lab made more > thoroughgoing use of computers than other departments and > cited enormous consumption of machine time as evidence. > > Steve Johnson recalls corrrectly that there was a set of macros > that turned the assembler into a Lisp compiler. I wrote it > and used it for a theorem-proving project spurred by Martin > Davis. (The project was blown away when Robinson published > the resolution princple.) The compiler did some cute local > optimization, taking account of facts such as Bob Morris's > astute observation that the 704 instruction TNZ (transfer on > nonzero) sets the accumulator to zero. > > Doug