From ... From: Erik Naggum Subject: Re: Transmeta's Crusoe as a host for neo-Lispm, or not? Date: 2000/01/24 Message-ID: <3157725884436112@naggum.no>#1/1 X-Deja-AN: 577002781 References: <8666wpznjd.fsf@coulee.tdb.com> mail-copies-to: never Content-Type: text/plain; charset=us-ascii X-Complaints-To: newsmaster@eunet.no X-Trace: oslo-nntp.eunet.no 948737130 14898 195.0.192.66 (24 Jan 2000 18:05:30 GMT) Organization: Naggum Software; +47 8800 8879 or +1 510 435 8604; fax: +47 2210 9077; http://www.naggum.no User-Agent: Gnus/5.0802 (Gnus v5.8.2) Emacs/20.5 Mime-Version: 1.0 NNTP-Posting-Date: 24 Jan 2000 18:05:30 GMT Newsgroups: comp.lang.lisp * Tim Bradshaw | 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