Grand Central Dispatch and MacRuby?
Grand Central Dispatch is Apple's proposed technology for making concurrent programming easier and safer. It looks pretty cool, as far as I can tell from the somewhat fluffy discussion here: http://images.apple.com/macosx/technology/docs/GrandCentral_TB_brief_2009060... It's also pretty clear that any first-class development language on Mac OS X, going forward, will have to support this. Ruby has all sorts of block-based goodness already and Laurent is busily implementing JIT for MacRuby, so I speculate that GCD may well be in MacRuby's future. Has anyone looked into this possibility, if only to the extent of sketching out what language extensions might be needed? -r -- http://www.cfcl.com/rdm Rich Morin http://www.cfcl.com/rdm/resume rdm@cfcl.com http://www.cfcl.com/rdm/weblog +1 650-873-7841 Technical editing and writing, programming, and web development
Hi Rich, On Jun 9, 2009, at 5:57 AM, Rich Morin wrote:
Grand Central Dispatch is Apple's proposed technology for making concurrent programming easier and safer. It looks pretty cool, as far as I can tell from the somewhat fluffy discussion here:
http://images.apple.com/macosx/technology/docs/GrandCentral_TB_brief_2009060...
Hey, i resemble that remark. :-P If you're a Snow Leopard seed key holder, there's technical documentation available behind the firewall.
It's also pretty clear that any first-class development language on Mac OS X, going forward, will have to support this. Ruby has all sorts of block-based goodness already and Laurent is busily implementing JIT for MacRuby, so I speculate that GCD may well be in MacRuby's future.
Has anyone looked into this possibility, if only to the extent of sketching out what language extensions might be needed?
Yes, Laurent and I have talked about it. :-) There's a fair amount of infrastructure need to make this work efficiently, so it may take a while, but it is definitely on the roadmap. -- Ernie P.
On Jun 9, 2009, at 5:57 AM, Rich Morin wrote:
It's also pretty clear that any first-class development language on Mac OS X, going forward, will have to support this. Ruby has all sorts of block-based goodness already and Laurent is busily implementing JIT for MacRuby, so I speculate that GCD may well be in MacRuby's future.
Has anyone looked into this possibility, if only to the extent of sketching out what language extensions might be needed?
Various apple folks on this list have, as one might expect, looked into the possibility. Given that MacRuby is a cooperative project which involves folks both inside and outside Apple, however, we need to wait for SnowLeopard to ship before we do much more than look, since this extending the Ruby language to better support parallelism is something we need to discuss as a full and complete group before making any moves. Laurent also has more than enough on his plate just finishing up the LLVM work and we don't need him distracted by any new shiny objects before 0.5 reaches feature parity with 0.4, at the very least. :-) I would prefer that we focus on figuring out what needs to be done as a prerequisite for bringing the -experimental branch back to trunk before even considering at which of many possible mountains we would like to climb next. - Jordan
On Jun 9, 2009, at 10:59 AM, Jordan K. Hubbard wrote:
On Jun 9, 2009, at 5:57 AM, Rich Morin wrote:
It's also pretty clear that any first-class development language on Mac OS X, going forward, will have to support this. Ruby has all sorts of block-based goodness already and Laurent is busily implementing JIT for MacRuby, so I speculate that GCD may well be in MacRuby's future.
Has anyone looked into this possibility, if only to the extent of sketching out what language extensions might be needed?
Various apple folks on this list have, as one might expect, looked into the possibility. Given that MacRuby is a cooperative project which involves folks both inside and outside Apple, however, we need to wait for SnowLeopard to ship before we do much more than look, since this extending the Ruby language to better support parallelism is something we need to discuss as a full and complete group before making any moves. Laurent also has more than enough on his plate just finishing up the LLVM work and we don't need him distracted by any new shiny objects before 0.5 reaches feature parity with 0.4, at the very least. :-) I would prefer that we focus on figuring out what needs to be done as a prerequisite for bringing the - experimental branch back to trunk before even considering at which of many possible mountains we would like to climb next.
Indeed, there are a few things to do first, including the implementation of a threading model. Threads have not been implemented yet in the experimental branch (we keep the best for last :)). I contemplated implementing the Thread class on top of GCD a while ago, but the semantics of GCD and the Thread APIs don't always match (and it would make MacRuby SL-only). So, it's better I think to have real posix threads first, then an API to talk to GCD later. I already started thinking about integrating GCD differently, after some brainstorming with a few persons. I will eventually hack something but unfortunately this won't be public until SL ships. Laurent
Thanks to all for the responses. I'm happy to hear that this is a plausible notion and that appropriate folks are thinking about it. :) -r -- http://www.cfcl.com/rdm Rich Morin http://www.cfcl.com/rdm/resume rdm@cfcl.com http://www.cfcl.com/rdm/weblog +1 650-873-7841 Technical editing and writing, programming, and web development
participants (4)
-
Ernest N. Prabhakar, Ph.D.
-
Jordan K. Hubbard
-
Laurent Sansonetti
-
Rich Morin