From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HTML_FONT_LOW_CONTRAST,HTML_MESSAGE,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 27375 invoked from network); 2 Jul 2021 01:43:48 -0000 Received: from minnie.tuhs.org (45.79.103.53) by inbox.vuxu.org with ESMTPUTF8; 2 Jul 2021 01:43:48 -0000 Received: by minnie.tuhs.org (Postfix, from userid 112) id 1DE8D9C8A4; Fri, 2 Jul 2021 11:43:45 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 99A689C861; Fri, 2 Jul 2021 11:42:32 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=yaccman.com header.i=@yaccman.com header.b="co6R5CAJ"; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id 546BA9C861; Fri, 2 Jul 2021 11:42:29 +1000 (AEST) X-Greylist: delayed 381 seconds by postgrey-1.36 at minnie.tuhs.org; Fri, 02 Jul 2021 11:42:28 AEST Received: from donkey.elm.relay.mailchannels.net (donkey.elm.relay.mailchannels.net [23.83.212.49]) by minnie.tuhs.org (Postfix) with ESMTPS id 4825B9C854 for ; Fri, 2 Jul 2021 11:42:28 +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 32ED7781B10; Fri, 2 Jul 2021 01:36:06 +0000 (UTC) Received: from pdx1-sub0-mail-a70.g.dreamhost.com (100-96-17-81.trex.outbound.svc.cluster.local [100.96.17.81]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id AFCF0781BDF; Fri, 2 Jul 2021 01:36:05 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|scj@yaccman.com Received: from pdx1-sub0-mail-a70.g.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384) by 100.96.17.81 (trex/6.3.3); Fri, 02 Jul 2021 01:36:06 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|scj@yaccman.com X-MailChannels-Auth-Id: dreamhost X-Absorbed-Blushing: 2ba1df62080eb25b_1625189766022_4158729401 X-MC-Loop-Signature: 1625189766022:1109200452 X-MC-Ingress-Time: 1625189766022 Received: from pdx1-sub0-mail-a70.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a70.g.dreamhost.com (Postfix) with ESMTP id 6CCF987AC6; Thu, 1 Jul 2021 18:36:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=yaccman.com; h= mime-version:date:from:to:cc:subject:in-reply-to:references :message-id:content-type; s=yaccman.com; bh=4k8s3Mg4cGFa45uu9VMm 0RIwYrM=; b=co6R5CAJXte/pEt6RQmEDnZFP+oshisd3BV4rgz1dcn+oqwjIxRq /upKckUwj7hjDhWCUnByYNot4MCDlzo69284g/2+5Gp32HTDhXHsUjhjp4dmNGpV p+i1p/qB0yWiesyxdITJVdcyGgzl/BFqmKuREwS+6kFwWYgaDYQDJ1M= Received: from webmail.dreamhost.com (ip-66-33-200-4.dreamhost.com [66.33.200.4]) (Authenticated sender: scj@yaccman.com) by pdx1-sub0-mail-a70.g.dreamhost.com (Postfix) with ESMTPA id 21ACE7E3A3; Thu, 1 Jul 2021 18:36:04 -0700 (PDT) MIME-Version: 1.0 Date: Thu, 01 Jul 2021 18:36:04 -0700 X-DH-BACKEND: pdx1-sub0-mail-a70 From: scj@yaccman.com To: Clem Cole In-Reply-To: References: User-Agent: DreamHost Webmail/1.4.1 Message-ID: <0f8af9213f5e8a3c536047e580a9e5c8@yaccman.com> X-Sender: scj@yaccman.com Content-Type: multipart/alternative; boundary="=_f3e5ef34f4de37e299c5096b6ae6e641" Subject: Re: [TUHS] Disassemblers 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: , Cc: The Eunuchs Hysterical Society Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" --=_f3e5ef34f4de37e299c5096b6ae6e641 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable I saw this post and it reminded me of a meeting that Dennis and I had with Bill Wulf. At one point, Dennis decided to write an optimizer but gave up after a week or two because when he had coded the data structures he needed he had filled up the PDP-11 memory! It was a very strong part of the Unix meme that Unix and C would run on small computers since most of the universities couldn't afford bigger ones at the time.=20 When PCC came along and started running on 32-bit machines, I started thinking about algorithms for optimization. A problem that I had no good solution for could be illustrated by a simple piece of code:=20 x =3D *p;=20 y =3D *q;=20 q gets changed=20 *q =3D z;=20 The question is, do I need to reload x now because q might have been changed to point to the same place as p? At around this time, Al Aho was invited to go to CMU and give a talk, and he invited me to come with him. We spent about an hour and a half one-on-one with Bill Wulf -- I seem to remember a lot of mutual respect going on. But when I asked him about my problem, he really didn't have much to say about it. I finally got him to agree that his compiler had a bug. But he said there was a flag they could set on the compiler that would turn of optimization and if your program had mysterious bugs, you should use the flag.=20 I recall that Al, always in search of better algorithms, was a bit disappointed -- I was a bit more pragmatic about it. On the whole, it was a good meeting, and the "Engineering ... Compiler" book was one of my favorites when it came out.=20 Steve --- On 2021-06-19 09:59, Clem Cole wrote: > On Sat, Jun 19, 2021 at 12:33 PM Henry Bent wr= ote: >=20 >> Wait, so it was easier to write an emulator for a PDP-10 binary than i= t would have been to port BLISS to the PDP-11? Given the different word = sizes I would not have expected that. >=20 > BLISS-11 was (way) too big to run in the 64K address of the PDP-11 (eve= n separated I/D). Originally, it was a PDP-10 cross compiler and later m= oved to the Vax. It generated much better code than the original Ritchi= e or later Johnson compilers. The code generator/optimizer was famous (= literally the book on code optimization was written about it, called of c= ourse: "The Design of an Optimizing Compiler" [1] by Wulf and some of his= students [ISBN 0444001581] - _a.k.a._ 'The Green Book' worth reading BTW= .=20 >=20 > Later on, DEC's TLG tried at least twice that I know of to make it self= -hosting but gave up. Long story (and definitely a different thread) if D= EC has not screwed up the marketing of BLISS, I suspect it might have giv= en C a run for the money. But BLISS _vs_. C is a great example of Cole's= law that _Simple Economics always beats Sophisticated Architecture_ [and= using Christensen's 'disruptive theory -- it gets better and supplants t= he incombent].=20 >=20 > Anyway, the compiler/code generator/linker for DEC Fortran-IV for RT-11= , RSX, and DOS-11 was written in BLISS-11. So for CU to retarget it for = V6 they needed a PDP-10, which they did not have. So they wrote a simula= tor. I remember when they gave a talk about it at Usenix, somebody asked= them how well Tenex ran on it.=20 >=20 >> Did they have a cover sheet or something equivalent that they came wit= h? I'm having trouble imagining dealing with that much unindexed data on= an early system. >=20 > Not to my knowledge. Two things that I believe we need to do for the T= UHS archives to be even more meaningful is 1.) decode them from tp/ar -- = even if you read the tape, they are packed together in v5/v6 ar files whi= ch are PDP-11 binary. 2.) Create an index of what is there. =20 >=20 > I've thought about both things but have way too much on my plate to do = it myself.=20 >=20 >> Fascinating. Thank you as always for the insight. >=20 > Most welcome.=20 > Clem =20 > =E1=90=A7 =20 Links: ------ [1] https://www.amazon.com/Design-Optimizing-Compiler-William-Allan/dp/044400= 1581 --=_f3e5ef34f4de37e299c5096b6ae6e641 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=UTF-8

I saw this post and it reminded me of a meeting that Dennis and I had wi= th Bill Wulf.  At one point, Dennis decided to write an optimizer but = gave up after a week or two because when he had coded the data structures h= e needed he had filled up the PDP-11 memory!   It was a very stro= ng part of the Unix meme that Unix and C would run on small computers since= most of the universities couldn't afford bigger ones at the time.

When PCC came along and started running on 32-bit machines, I started th= inking about algorithms for optimization.  A problem that I had no goo= d solution for could be illustrated by a simple piece of code:

         x =3D *p;

         y =3D *q;

         q gets changed

         *q =3D z;

The question is, do I need to reload x now because q might have been cha= nged to point to the same place as p?   At around this time, Al A= ho was invited to go to CMU and give a talk, and he invited me to come with= him.  We spent about an hour and a half one-on-one with Bill Wulf -- = I seem to remember a lot of mutual respect going on.  But when I asked= him about my problem, he really didn't have much to say about it.  I = finally got him to agree that his compiler had a bug.  But he said the= re was a flag they could set on the compiler that would turn of optimizatio= n and if your program had mysterious bugs, you should use the flag.

I recall that Al, always in search of better algorithms, was a bit disap= pointed -- I was a bit more pragmatic about it.  On the whole, it was = a good meeting, and the "Engineering ... Compiler" book was one of my favor= ites when it came out.


Steve

---
=  


On 2021-06-19 09:59, Clem Cole wrote:

 

On = Sat, Jun 19, 2021 at 12:33 PM Henry Bent <henry.r.bent@gmail.com> wrote:
<= /span>
Wait, so it was easier to = write an emulator for a PDP-10 binary than it would have been to port BLISS= to the PDP-11?  Given the different word sizes I would not have expec= ted that.
BLISS-11 was (way) too big to= run in the 64K address of the PDP-11 (even separated I/D).  Originall= y, it was a PDP-10 cross compiler and later moved to the Vax.  &n= bsp;It generated much better code than the original Ritchie or later Johnso= n compilers.   The code generator/optimizer w= as famous (literally the book on code optimization was written about it, ca= lled of course:  by Wulf and some of his = students [ISBN 0444001581] - a.k.a. 'Th= e Green Book' worth reading BTW.
 
Later on, DEC's TLG tri= ed at least twice that I know of to make it self-hosting but gave up. Long = story (and definitely a different thread) if DEC has not screwed up the mar= keting of BLISS, I suspect it might have given C a run for the money. = But BLISS vs. C is a great example of Cole's law that Simple Economics always beats Sophisticated Architecture [an= d using Christensen's 'disruptive theory -- it gets better and supplants th= e incombent].
 
Anyway, the compiler/co= de generator/linker for DEC Fortran-IV for RT-11, RSX, and DOS-11 was writt= en in BLISS-11.  So for CU to retarget it for V6 they needed a PDP-10,= which they did not have.  So they wrote a simulator.  I remember= when they gave a talk about it at Usenix, somebody asked them how well Ten= ex ran on it.
 
 
 
 
 
Did they have a cover sheet or something equivalent that they came wit= h?  I'm having trouble imagining dealing with that much unindexed data= on an early system.
Not to my knowledge. = ; Two things that I believe we need to do for the TUHS archives to be even = more meaningful is 1.) decode them from tp/ar -- even if you read the tape,= they are packed together in v5/v6 ar files which are PDP-11 binary.  = 2.) Create an index of what is there.   
 
I've thought about both thing= s but have way too much on my plate to do it myself.
Fascinating.  Thank you as always for the insight.
Most welcome.
Clem 
=E1= =90=A7
--=_f3e5ef34f4de37e299c5096b6ae6e641--