4 ms·
That's... basically not even wrong. Lisp implementations that run well on, and take advantage of, architectures with caches, branch prediction and complex memo
by weland 12y ago
That's... basically not even wrong.
Lisp implementations that run well on, and take advantage of, architectures with caches, branch prediction and complex memory hierarchies are well-known, and have been well-known for, literally, decades. http://pt.withy.org/publications/VLM.html http://pt.withy.org/publications/VLM.html is an example from 1994. More importantly though, even the earlier Lisp machines (at least since 1983!) implemented a form of instruction caching, and had hardware-aided garbage collection.
> The car/cdr list is just about the worst way to represent lists in terms of performance on modern CPUS. Conceptually it is really clean, but about the only application it makes sense for is first order theorem proving, or in languages that support pattern matching. If you actually want to use lists as lists something like the Java ArrayList makes more sense.
The car/cdr list is not the only data structure in Common Lisp.
- RodgerTheGreat 12y agoThe car/cdr list is the only data structure described in cute metacircular interpreters, and even then only when supported by a substantial amount of implied runtime code.
- pjmlp 12y agoThis doesn't look like a substantial runtime code. http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf
- RodgerTheGreat 12y agoThat doesn't look like sufficient runtime code. That paper quite explicitly avoids implementing a garbage collector, among other things.
- pjmlp 12y agoA simple reference counted implementation with cycle collector is not a big deal to implement, nor a substantial effort. It might perform like a dog, but that is another matter.
- abecedarius 12y agoHere's the complete runtime of my garbage-collected self-hosting Lisp-to-C compiler: https://github.com/darius/ichbins/blob/master/ichbins.scm#L289-L382 https://github.com/darius/ichbins/blob/master/ichbins.scm#L2... (Yes, it's not the world's fastest.)
- crististm 12y agoI've been looking for some time for the whole paper but could not find anything but the abstract. Is it anywhere to be found?
- weland 12y agoI have no idea. I think I read it a long time ago, but I'm sure I was in university back then so it may have been in the library or something.
- iak8god 12y agoAn extended abstract is basically just a short paper, and not usually the abstract to anything [1]. So that might be everything the authors wrote on the topic. It's reasonable to assume that any full paper by P.T. Withington would be posted on his personal site[2] alongside the abstract. [1] http://academia.stackexchange.com/a/1352 http://academia.stackexchange.com/a/1352 [2] http://pt.withy.org/ http://pt.withy.org/
- crististm 12y agopt.withy.org does not have the full paper[1] readily available. [1] The extended abstract itself mentioned " The full paper also discusses other aspects...".
- iak8god 12y agoInteresting. Thanks for pointing out that the abstract mentions "the full paper." It is possible though that the paper was never completed / published: note that though this abstract was "Submitted to PLDI '94," it doesn't appear in the proceedings for that event [1]. If the abstract was rejected the authors may have never finished the paper. [1] http://dblp1.uni-trier.de/db/conf/pldi/pldi94.html http://dblp1.uni-trier.de/db/conf/pldi/pldi94.html