No, you're not missing something. In the past I've turned down the idea of using RPython due to the lack of threading support. But in the past year major, major headway has been made (as you mentioned) so perhaps RPython isn't as crazy of an idea after all.
As far as a GC goes, yes, RPython can use one of many JITs, with a simple command-line switch, the RPython translator can create binaries that use reference counting, Boehm GCs or a custom mark-and-sweep generational (compacting?) GC. The only downside is that IIRC the more complex GCs are not yet thread-safe. But once again, major work is being done there. Timothy On Thu, May 30, 2013 at 4:51 AM, Dax Fohl <dax.f...@gmail.com> wrote: > I've got no idea about RPython itself, but the PyPy toolchain takes an > interpreter for any language specified in RPython, and generates a native > interpreter for that language, complete with JIT, garbage collection, etc. > (Here's an example > http://morepypy.blogspot.com/2011/04/tutorial-writing-interpreter-with-pypy.html > ). > > Given there's an RPython interpreter for Python (aka PyPy), which > dynamically generates the JIT, GC, etc, it seems logical that one could > write an RPython interpreter for Clojure in the same way and get all the > benefits of their toolchain. Apparently they've got STM working there too. > And my understanding is that their generated tracing JIT is awesome for > things marked as immutable (I forget where I read that), which would have > insane performance consequences for Clojure. > > On Thursday, May 30, 2013 6:11:38 PM UTC+8, Michael Klishin wrote: >> >> 2013/5/30 Dax Fohl <dax....@gmail.com> >> >> Am I missing something? What are the downsides of this approach? >> >> >> is RPython garbage collected? Key ideas in Clojure pretty much assume >> memory management is not something you >> have to worry about. >> >> What about concurrency primitives? Clojure builds its reference types on >> top of JDK/.NET ones (and mimics them >> in ClojureScript). >> -- >> MK >> >> http://github.com/**michaelklishin <http://github.com/michaelklishin> >> http://twitter.com/**michaelklishin <http://twitter.com/michaelklishin> >> > -- > -- > 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/groups/opt_out. > > > -- “One of the main causes of the fall of the Roman Empire was that–lacking zero–they had no way to indicate successful termination of their C programs.” (Robert Firth) -- -- 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/groups/opt_out.