[MacRuby-devel] macruby on iphone (again) - options and way forward

Matt Aimonetti mattaimonetti at gmail.com
Sun Oct 11 02:02:19 PDT 2009


John, thanks for sharing, look for an email from Laurent from about a week
where he's explaining the plan for the iphone and what needs to be done to
release/retain objects. I think the thread should help you and you might
want to work with the other developer who already started looking into that.

- Matt

On Sun, Oct 11, 2009 at 1:53 AM, John Shea <johnmacshea at gmail.com> wrote:

> Hello everyone.
>
> So I think this topic is going to rear its ugly/pretty head until a
> solution becomes available, and I myself would really like to be able to use
> macruby code on the iphone.
>
> So I have put down my naive thoughts as to what are the issues.
>
> I am a complete novice when it comes to GC, so I am sorry if this is all
> obvious or erroneous - but the important part is the discussion - which i
> hope many of you will add to.
>
> Anyway it could be that I don't know enough about the subject to make sense
> of it. But a way to perhaps getting more people to work on getting macruby
> on the phone could be:
>
> 1. Describe the current GC situation on the mac & macruby in terms of
> architecture.
> 2. Describe an appropriate architecture for how GC would work on the
> iphone, how the programmer interacts with it in coding or compiling.
> 3. Describe the various parts of work that have to be done to to implement
> 2.
> 4. Make some suggestions of similar coding efforts or current code files or
> other references that people can use/copy to build a proof of principle
>
> The following are my versions of 1 and 2:
>
> Point 1:
> My assumption is that currently macruby hooks into objective c's GC -
> autozone (this one ?
> http://www.opensource.apple.com/source/autozone/autozone-77.1/) via ruby's
> ObjectSpace.
>
> Point 2:
> The iphone does not have GC so therefore in order to run macruby something
> needs to collect the garbage.
>
> My other assumption is that you cannot run interpreted code on the iphone
> (or iphone simulator) so when developing for iphone the ruby code would need
> to be compiled during the build phase.
>
> So I can think of two ways to do collect the garbage.
>
> Firstly port autozone to the iphone - integrate macruby more or less as now
> - include it as a framework or something.
> However,
>  - i am concerned that the separate autozone thread(s) may not play well
> with the iphone processor
>  - in addition the threads need to be interruptible, when phone calls come
> in or the home button is pressed - i can imagine including the autozone
> controller in the responder chain (in order to receive the shutdown command)
> would not be trivial.
>
> I am wondering if the above complexity is why Laurent always refers to
> "emulating" autozone rather than including it or porting it.
>
> The other option i can think of is in the build phase insert the necessary
> retains, releases and autoreleases into the code. By either:
>
>        i) the developer including the calls manually, which are then
> compiled/translated to the appropriate C/ObjC commands. (I have gone off
> this idea a bit because the code would be hard to test in isolation (unless
> there were special compiler codes normally ignored by the ruby interpreter),
> and would make it hard to drop in any nice ruby code/libraries, and later on
> hard to fix code if an official GC ever arrives).
>
>        ii) have a script which traverses the ruby code - and adds dealloc
> methods for instance methods, adds releases to scope bound variables etc,
> etc.
> (I like this option the best, though i have little idea how to implement)
>
> So do you all think i have described the situation properly?
>
> If so perhaps someone (more knowledgeable) could provide some hints to
> points 3 and 4 above?
>
> Or if i haven't described the situation properly then the whole stack of
> points 1-4 would (I think) help us move forward - and help people contribute
> to a solution.
>
> Cheers,
> John
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-devel/attachments/20091011/d8a79d3d/attachment.html>


More information about the MacRuby-devel mailing list