4 ms·
The idea that you can have an alternate ISA that's designed for high level languages like lisp with fast pointer tagging and garbage collection is a myth that i
by eklitzke 4y ago
The idea that you can have an alternate ISA that's designed for high level languages like lisp with fast pointer tagging and garbage collection is a myth that isn't really supported by the history. A huge reason for the demise of Lisp machines (other than their outrageous price) is that while they were very cool, they were also incredibly slow compared to commercial Unix systems written in C. This is actually addressed in the preface to the Unix Haters Handbook[1] (ctrl-f "Michael Travers" to get to the relevant part), which is written by someone who had to move from working on a Lisp machine to a VAX workstation. It's a great (and humorous) read and kind of illustrates the point that as cool as Lisp machines were, they had terrible performance compared to other computer architectures at the time. Worse is better, and all that.
Another great example of this is Jazelle[2], which was an ARM ISA extension that added extensions to support running Java bytecode natively on the processor. It's a really cool idea but the reality was that it was too complicated and didn't work well. High performance JDKs like Azul or OpenJDK that are written the traditional way for regular ARM/x86 perform better, and they make CPU design much simpler. The reason that there's a weird symbiotic relationship between CPU design today and C-like languages is that's the model that actually is the best tradeoff between performance, safety, and cost. I know this may sound strange to people, but the market doesn't lie.
There's obviously an argument to be made that there was a chicken-and-egg problem here, where Lisp machines and Jazelle had low adoption rates and that led to low investment in the technologies from companies (compared to say x86). Maybe in an alternate reality where the industry had gone all in on this kind of technology the technology would have actually been fast and cheap. But that's highly speculative and the actual historical examples we have don't support this idea.
[1] http://web.mit.edu/~simsong/www/ugh.pdf http://web.mit.edu/~simsong/www/ugh.pdf
[2] https://en.wikipedia.org/wiki/Jazelle https://en.wikipedia.org/wiki/Jazelle
- medo-bear 4y agoi think the authors point is that you don't need to wait for alternate ISA in order to use lisp as a systems language