Arc Forumnew | comments | leaders | submitlogin
3 points by aw 5235 days ago | link | parent

another idea: you could go on the Racket dev email list (http://racket-lang.org/community.html) and say "as a learning experience I've implemented a gc for a small Lisp and was thinking about what to do next such as perhaps trying a tri-color algorithm. I'm curious what gc algorithm you're using for Racket and why you chose it over other alternatives?"


1 point by wsxiaoys 5234 days ago | link

Thanks for advices, I've read some papers on this topic and will take a deep searching into different scheme/lisp groups in following days. For now I decide to refactor carc to an byte-code one and use the new gc mechanism from the scratch :P

-----

2 points by aw 5234 days ago | link

If you'd like, something that would be helpful to us for you to keep an eye out for while you're looking is that we'd like to find a runtime (or learn how make a runtime) which:

- runs on multiple cores, AND

- supports full call-with-current-continuation, tail call optimization, and mutable lists

Our current options include:

- Racket, which can run on multiple cores, but only supports mutating lists within a single core, and

- the JVM, which does support mutating data structures by multiple cores, but doesn't natively support full continuations or tail call optimization.

-----