The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: scj@yaccman.com
To: Clem Cole <clemc@ccc.com>
Cc: The Eunuchs Hysterical Society <tuhs@tuhs.org>
Subject: Re: [TUHS] Disassemblers
Date: Thu, 01 Jul 2021 18:36:04 -0700	[thread overview]
Message-ID: <0f8af9213f5e8a3c536047e580a9e5c8@yaccman.com> (raw)
In-Reply-To: <CAC20D2POxdHJsSvRjSozASUWXQ+YAUaSA+7mAoPx1-JsTYHb1g@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 4012 bytes --]

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. 

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: 

         x = *p; 

         y = *q; 

         q gets changed 

         *q = z; 

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. 

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. 

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:
> 
>> 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 expected that.
> 
> BLISS-11 was (way) too big to run in the 64K address of the PDP-11 (even separated I/D).  Originally, it was a PDP-10 cross compiler and later moved to the Vax.   It generated much better code than the original Ritchie or later Johnson compilers.   The code generator/optimizer was famous (literally the book on code optimization was written about it, called of course: "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. 
> 
> 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 DEC has not screwed up the marketing 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_ [and using Christensen's 'disruptive theory -- it gets better and supplants the incombent]. 
> 
> 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 simulator.  I remember when they gave a talk about it at Usenix, somebody asked them how well Tenex ran on it. 
> 
>> Did they have a cover sheet or something equivalent that they came with?  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 things but have way too much on my plate to do it myself. 
> 
>> Fascinating.  Thank you as always for the insight.
> 
> Most welcome. 
> Clem  
> ᐧ
 

Links:
------
[1]
https://www.amazon.com/Design-Optimizing-Compiler-William-Allan/dp/0444001581

[-- Attachment #2: Type: text/html, Size: 8693 bytes --]

  parent reply	other threads:[~2021-07-02  1:43 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-19 15:04 Henry Bent
2021-06-19 15:54 ` Clem Cole
2021-06-19 16:33   ` Henry Bent
2021-06-19 16:59     ` Clem Cole
2021-06-19 20:44       ` Richard Salz
2021-06-19 21:49         ` Rob Pike
2021-06-19 21:50           ` Rob Pike
2021-06-19 22:55             ` Clem Cole
2021-06-19 23:14               ` Larry McVoy
2021-06-20  1:41             ` Brantley Coile
2021-07-02  1:36       ` scj [this message]
2021-07-02 16:56         ` Paul Winalski
2021-07-02 17:45           ` Paul Winalski
2021-07-02 18:07           ` John P. Linderman
2021-06-19 17:57 Noel Chiappa
2021-06-19 18:40 ` Clem Cole
2021-06-20  1:15 Norman Wilson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0f8af9213f5e8a3c536047e580a9e5c8@yaccman.com \
    --to=scj@yaccman.com \
    --cc=clemc@ccc.com \
    --cc=tuhs@tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).