Subject: Re: Transmeta's Crusoe as a host for neo-Lispm, or not?
From: Erik Naggum <erik@naggum.no>
Date: 2000/01/24
Newsgroups: comp.lang.lisp
Message-ID: <3157725884436112@naggum.no>

* Tim Bradshaw <tfb@cley.com>
| OK, from all this I get:
| 
| 	We can design a lisp processor which will run Lisp about 5x as fast
| 	as a pentium will run C, at the same clock rate.  And if the market
| 	was equivalently large, this chip would cost about the same as a
| 	pentium.
| 
| This is a conclusion that I find very uncomfortable indeed.  As far as I
| can see this means either that, in some deep sense, Lisp is a language
| which can be made to go much faster than C, or that in fact the pentium
| is a very poor `C machine', and much faster C machines could be designed.
| Neither option seems very likely to me.

  once upon a time, when ANSI C was fairly young and compilers for the
  language were new enough to be simple enough for me to understand, I
  spent a fair amount of time studying then-current processors and how they
  would optimally "represent" C.  it turns out that C was a good language
  back when PDP-11 was a good processor.  C has sucked since then, more and
  more so over the years.  today, C is probably the crappiest language you
  can possibly find, made worse only by its "improvement", C++.  neither
  has a snowball's chance in hell of being compiled into _optimal_ machine
  code on modern processors.  the language itself is so low-level it tries
  to run on a "virtual" processor that only to the untraied eye looks like
  modern processors.

  I recently had the opportunity to study the Pentium III from the inside,
  and I was positively amazed by what the Intel guys have managed to hide
  behind that god-awful instruction set they have to be compatible with.
  it's good stuff, and it isn't being used because people are still stuck
  on the 386 and refuse to compile programs for 686s.

  if you actually _used_ the Pentium III architecture for Lisp, you'd truly
  run rings around C, but since Lisp vendors, too, tend to stay with what
  is likely to sell well, you can't ask people to upgrade to 600MHz PIIIs
  just to get that super performance over C when C is doing "adequately" on
  a 133MHz PPro.  this _actually_ means that the performance gain for C is
  much smaller than the performance gain for Lisp, it is taken to mean that
  the _processors_ wouldn't provide that much performance gain for Lisp,
  either, considering the mind-bogglingly uintelligent conflation of C with
  "optimal hardware performance".

  C and C++ are firmly stuck in the early 80's as far as processor design
  is concerned.  Common Lisp never was stuck anywhere in the first place,
  which means it has had a hard time sticking to something in particular,
  as well, but at least it has the uncommon ability to let go.

  the task of good programmers everywhere is to get rid of C, or, more
  precisely, the C mindset and the gravely mistaken notion that C is
  somehow "inherently efficient".

#:Erik