FROM : Bill Bumgarner
DATE : Sun Nov 18 18:32:31 2007
On Nov 18, 2007, at 7:58 AM, Graham Perks wrote:
> I couldn't find a more appropriate mailing list. I just have a
> couple of questions:
>
> 1) Can we add Python or Ruby classes to an existing Objective-C
> project? I can't find a sample that mixes languages. I tried adding
> some .rb files to my project, but they don't seem to be loaded at
> runtime. Is there a way to make this work (assuming mixing languages
> is supported at all)?
You need to add the bootstrap code necessary to bring up the Python or
Ruby interpreter in your existing application. The easiest way to do
this is to create a new Cocoa Python or Cocoa Ruby project, then copy/
paste out the bits from the main file(s) that are needed.
Some slight changes will be needed to those files to make it all work
correctly. See the "embedding" documentation for your language of
choice.
> 2) In the WWDC 2006 or 2007 slides there was a bullet about "Memory
> management does not work" and the vocal comment was that this was
> still being looked into. I didn't grasp the full consequences about
> this - was it saying no garbage collection for Python/Ruby programs
> at all? No garbage collection for mixed-language apps? Or just no GC
> on the Objective-C side of a mixed app? And, what is the current
> status of this rather important bullet?
Objective-C Garbage Collection cannot be enabled in Ruby/Python based
Cocoa applications. Specifically, you can't use Objective-C objects
on the scripting language side of the bridges.
If you are embedding Ruby or Python with the purpose of running
straight ruby/python scripts, with non-object data coming from the
objective-c side of the world, it isn't an issue.
(Technically, there really isn't a reason why you couldn't enable GC
for RubyCocoa and PyObjC. You would need to recompile the bridges and
Python/Ruby interpreters with GC enabled. Once enabled, you "just"
need to make sure that any reference to an Objective-C object passed
through to Ruby/Python continues to have a strong reference on the obj-
c side of the bridge.)
b.bum
DATE : Sun Nov 18 18:32:31 2007
On Nov 18, 2007, at 7:58 AM, Graham Perks wrote:
> I couldn't find a more appropriate mailing list. I just have a
> couple of questions:
>
> 1) Can we add Python or Ruby classes to an existing Objective-C
> project? I can't find a sample that mixes languages. I tried adding
> some .rb files to my project, but they don't seem to be loaded at
> runtime. Is there a way to make this work (assuming mixing languages
> is supported at all)?
You need to add the bootstrap code necessary to bring up the Python or
Ruby interpreter in your existing application. The easiest way to do
this is to create a new Cocoa Python or Cocoa Ruby project, then copy/
paste out the bits from the main file(s) that are needed.
Some slight changes will be needed to those files to make it all work
correctly. See the "embedding" documentation for your language of
choice.
> 2) In the WWDC 2006 or 2007 slides there was a bullet about "Memory
> management does not work" and the vocal comment was that this was
> still being looked into. I didn't grasp the full consequences about
> this - was it saying no garbage collection for Python/Ruby programs
> at all? No garbage collection for mixed-language apps? Or just no GC
> on the Objective-C side of a mixed app? And, what is the current
> status of this rather important bullet?
Objective-C Garbage Collection cannot be enabled in Ruby/Python based
Cocoa applications. Specifically, you can't use Objective-C objects
on the scripting language side of the bridges.
If you are embedding Ruby or Python with the purpose of running
straight ruby/python scripts, with non-object data coming from the
objective-c side of the world, it isn't an issue.
(Technically, there really isn't a reason why you couldn't enable GC
for RubyCocoa and PyObjC. You would need to recompile the bridges and
Python/Ruby interpreters with GC enabled. Once enabled, you "just"
need to make sure that any reference to an Objective-C object passed
through to Ruby/Python continues to have a strong reference on the obj-
c side of the bridge.)
b.bum
| Related mails | Author | Date |
|---|---|---|
| Graham Perks | Nov 18, 16:58 | |
| Bill Bumgarner | Nov 18, 18:32 | |
| Graham Perks | Nov 19, 14:12 | |
| Bill Bumgarner | Nov 19, 18:53 | |
| Satoshi Nakagawa | Nov 23, 05:41 |






Cocoa mail archive

