I've been wondering lately about getting Clojure to compile to native code, and so I've been doing some looking around.
There are a few projects that are on the right track, such as TinyClojure <https://github.com/WillDetlor/TinyClojure> and Ferret <http://nakkaya.com/2011/06/29/ferret-an-experimental-clojure-compiler/>, but they are incomplete and don't seem to be under active development any more. I'm wondering about the requirements, how much work it would take, and whether or not it would be worth it. My current thinking is of a Clojure->C/C++ compiler. So far, I have a few topics for discussion that I'm unclear about that might be necessary for this kind of project: - Can the Immutable Persistent Data Structures be implemented with a reference-counting scheme rather than a garbage collector? This may improve performance. - In a similar vein, can the allocation strategy be controlled for these structures in such a way as to optimize cache locality? - Can we take advantage of tail-call optimization in existing C++ compilers? - It wouldn't have to depend on an existing runtime environment like JVM or JavaScript. - Could this reduce reliance on reflection and increase performance? - Could a new, clojure-optimized runtime be created that improves performance? - Could certain anonymous functions be optimized or inlined in a way that improves performance over JVM/JS implementations? - Is there a way to compile C++ code at runtime? This would be essential for the REPL and for Macros. Let me know if anyone has any thoughts on the matter. Thanks -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.