On 31/07/15 01:21, ponce wrote:
Unfortunately I'm stuck because OS X shared libraries are not implemented in DMD so it may be quite a long time before I can use a 2.068 front-end for all this. My target is the currently available 2.066/2.067.
I see, you're using LDC? Then I recommend you have a look at the Objective-C bridge  I created. It has not been updated in a very long time but I think you can use it as a base. Perhaps just update it for D2.
Actually I've skimmed it before and failed to understand if it allows to subclass ObjC objects. If it doesn't then calling the runtime might still be necessary.
The implementation that is currently in DMD head is a very limited implementation that only supports calling instance methods. So no, currently it's not possible to subclass Objective-C classes.
Not really a problem since class functions do not seem tricky like objc_msgSend_*.
Class methods work the same as instance methods. In Objective-C classes are objects themselves.
I was also unsure if extern(Objective-C) helps with the runtime functions themselves, or rather only dispatch to the right runtime function obj_msgSend_*. Or both.
It will call a method in the same way as the Objective-C compiler would do. That means calling obj_msgSend_*.
 http://dsource.org/projects/dstep -- /Jacob Carlborg