Re:Clojure Implemented in Pure Python
by mbenkard on Thursday March 01, 2012 @08:01AM
(#3651898)
I don't understand. Do you mean that you can't compile Clojure into Common Lisp the way you can compile it into Python/PyPy?
[ Parent
| on HN ]
You can, but I think you'd run into the same issues mentioned here: http://clojure-py.blogspot.com/2012/02/ive-been-asked-many-t...
Basically it reflection (aka dynamic dispatch) is a major performance killer if you don't implement a tracing jit.
CLOS implementations have had to deal with the problem of extreme dynamism for a long time, so there has been quite a bit of optimization work associated with it. Polymorphic inline caches help a lot, for example.
That said, a good tracing JIT is probably better; but on the other hand, SBCL has profited from many years of optimization work on CMU CL. It would be interesting to see some real-world performance comparisons between SBCL and PyPy.
Re:Clojure Implemented in Pure Python
by pavelludiq on Thursday March 01, 2012 @11:25AM
(#3652739)
Wouldn't SBCLs type inference(+ type hints) help with this? I'm no compiler expert, but i think clojure(with the possible exception of multimethods, which are slow even on the JVM) would map well to CL(maybe even better than the JVM).
PyPy is not just an Python-Interpreter. The PyPy Team build a Toolchain that can creat a JIT-Compiler out of a Interpreter (read some about the pypy project and you will be enlightened. Such a Toolchain does not exist for Common Lisp.