Newsgroups: comp.lang.lisp,comp.lang.scheme
Path: cantaloupe.srv.cs.cmu.edu!bb3.andrew.cmu.edu!nntp.sei.cmu.edu!news.psc.edu!wink.radian.com!gatech!arclight.uoregon.edu!news.radio.cz!newsbastard.radio.cz!news.radio.cz!CESspool!news.apfel.de!fu-berlin.de!news.mathworks.com!howland.erols.net!ix.netcom.com!hbaker
From: hbaker@netcom.com (Henry Baker)
Subject: Re: Why lisp failed in the marketplace
Content-Type: text/plain; charset=ISO-8859-1
Message-ID: <hbaker-0703971701020001@10.0.2.1>
Sender: hbaker@netcom15.netcom.com
Content-Transfer-Encoding: 8bit
Organization: nil
X-Newsreader: Yet Another NewsWatcher 2.2.0
References: <5edfn1$83b@Masala.CC.UH.EDU> <3066588599082020@naggum.no> <E6MqoH.Bw5@undergrad.math.uwaterloo.ca> <hbaker-0603971513420001@10.0.2.1> <E6opD4.60p@undergrad.math.uwaterloo.ca>
Mime-Version: 1.0
Date: Sat, 8 Mar 1997 01:01:02 GMT
Lines: 42
Xref: glinda.oz.cs.cmu.edu comp.lang.lisp:25926 comp.lang.scheme:19053

In article <E6opD4.60p@undergrad.math.uwaterloo.ca>,
papresco@csclub.uwaterloo.ca (Paul Prescod) wrote:

> Thanks for an interesting article. I don't understand one thing, though:
> 
> In article <hbaker-0603971513420001@10.0.2.1>,
> Henry Baker <hbaker@netcom.com> wrote:
> >I no longer trust what manuals and customer service people tell me.  When
> >approaching a new language/compiler, I spend a day (or much more)
looking at the
> >actual code generated.  It's amazing how good and how bad it can be.
> >Unfortunately, you have to go through the same exercise _each time a new
> >release comes out_, so it's pretty exhausting.  But if you're building
> >something where performance and/or correctness is really important, you have
> >little choice.  
> 
> ...
> 
> >It is dangerous to trust what even the compiler writers themselves
think, since
> >the interactions of the various types of optimizations tax their own
> >intuitions.
> 
> I don't understand how a day (or much more) of reverse engineering can give
> you a better understanding of the compiler than the compiler writer. 
> Proving a compiler "correct" does not seem to be a tractable problem
> (theoretically or practically), so the best you can get is a warm fuzzy
> that the compiler writer knows what he or she is doing.

Compiler writers have explained to me how their compiler worked, and then
when I showed them some code that it produced, they were amazed at some of
the things that it did.  Anyone who has worked with non-trivial AI-type
programs have had the same experience.

The particular issue that I was interested in was whether a particular
programming style resulted in 'good'/'efficient' code.  Although a compiler
writer can describe the general types of optimizations, it is often difficult
to predict what will actually happen in a particular case.  Since making this
style produce efficient code was particularly important to me, and I was willing
to change my style to make it efficient if that were necessary, I had to check
the actual output of the compiler.  I could also run timings, but you can get
a lot more information by looking at the generated code.
