Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'll be curious to see what the performance comparisons of typical Clojure programs will be. Persistent data structures tend to benefit a lot from highly optimised garbage collectors like those packaged with the JVM. And Clojure's highly dynamic style probably benefits a lot from JIT techniques too.

Still, it's a fascinating project, which I will watch closely.



This is a very very early project but mostly I think it'll be interesting to see how well they manage to utilize type annotations and how well the Clojure ecosystem provides this? (ie, is general Clojure code mostly untyped or is there enough for compilers to deduce most actual types?)

Why would this be important? Well because they are relying on LLVM for optimization, and while that's good if you know type info (via annotations or lower tiered profiling), there's a lot of code to start using this and those optimizations can be fragile.

If you read the articles posted here in the past year on the Erlang JIT they mirrored this sentiment, earlier "advanced" JIT attempts built on classic static language techniques like LLVM prefers failed because they didn't have enough type information, whilst the "simple" JIT that mainly removed overheads and concerned more with local types was showing good promise without too much engineering headache.


jank is currently using immer for persistent data structures: https://github.com/arximboldi/immer

Very much inspired by Clojure, with a lot of time put into benchmarking and profiling.

It's too early for me to share numbers on jank vs Clojure itself, especially due to the rewrite, but my earlier jank versions were definitely competitive with AOT compiled Clojure jars.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: