I just thought about this recently, but does the value-oriented nature of clojure mostly void the need for a cycles-aware GC? It seems like you won't ever have cycles without identities, or pointers (java references). Maybe this would be a problem only when you need identities, ie deftype or defprotocol implementing objects.
On Thu, May 30, 2013 at 8:15 AM, Timothy Baldridge <tbaldri...@gmail.com>wrote: > 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. > > > -- -- 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.