Objective-C runtime: bindings are possible?

Paolo Invernizzi paolo.invernizzi at no.address
Wed Mar 12 02:34:12 PDT 2014


On Tuesday, 11 March 2014 at 17:22:59 UTC, Jacob Carlborg wrote:
> On 2014-03-11 16:12, Paolo Invernizzi wrote:
>> Hi all,
>>
>> I'm wondering if it is possible to directly interface with the
>> objective-c runtime, as I've read [1] and I have some random 
>> crashes in
>> my code right now.
>
> Yes, it's possible since the Objective-C runtime is plain C 
> functions. You need to show us some code to be able to help you.
>
>> Someone can share some experience? I'm on 10.9...
>
> To interface with Objective-C there are three options:
>
> * Use the Objective-C runtime functions directly [1]
>  + Works now, no language or library support is needed
>  - Cumbersome
>  - Verbose
>  - Easy to make mistakes
>
> * Use an Objective-C/D bridge [2]
>  + Fairly simple to use
>  - Bloat, both template and virtual method bloat. We're talking 
> 60MB Hello World
>
> * Extend the language to be ABI compatible [3, 4]
>  + The compiler outputs the same code as the Objective-C 
> compiler would
>  + Easy to use (or as easy as using Objective-C would be, 
> sometimes easier)
>  - Requires language support
>
> I tried all of these options and personally I think the third 
> options is the best. As of a coincident I just finished (except 
> for exceptions) porting D/Objective-C to 64bit.
>
> [1] 
> https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ObjCRuntimeRef/Reference/reference.html
>
> [2] http://www.dsource.org/projects/dstep
> [3] http://wiki.dlang.org/DIP43
> [4] https://github.com/jacob-carlborg/dmd/tree/d-objc

Hi Jacob,

Actually I'm using [1], that's why I was wandering about eventual 
problems related to objc_msgSend_stret.
But I think that now the plan is to tryout [3]: that's the most 
logical solution after all...

- Paolo



More information about the Digitalmars-d-learn mailing list