DerelictCocoa
ponce via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Thu Jul 30 16:21:34 PDT 2015
On Thursday, 30 July 2015 at 18:21:00 UTC, Jacob Carlborg wrote:
> On 2015-07-30 12:19, ponce wrote:
>> Based on prior Jacob Carlborg'work (AFAIK) and inspired by
>> DerelictCF
>> (https://github.com/Extrawurst/DerelictCF), DerelictCocoa is an
>> elaborated hack to be able to use Cocoa without Xcode (tm).
>>
>> It does _not_ rely on the recent extern(Objective-C) additions
>> so I'm a
>> bit unsure how far the compatibility will go in the OS X
>> lineage.
>>
>> https://github.com/p0nce/DerelictCocoa
>>
>> This is an unofficial Derelict package, so use at your own
>> risk.
>
> I had a quick look at the implementation. You're not using the
> objc_msgSend_* family of functions correctly. That's one of the
> main reasons why extern(Objective-C) was implemented.
Indeed there are things I don't know why it works when it
shouldn't considering the calling convention. This is more like a
80% solution until something better can be done.
> I strongly recommend you adapting extern(Objective-C) instead.
> At least read the commit message [1] for the commit which
> implements extern(Objective-C). It explains how objc_msgSend_*
> works.
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 can provide more detail if necessary.
Thanks for the feedback. I'll start by reading by reading the
commit in more detail.
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.
Not really a problem since class functions do not seem tricky
like objc_msgSend_*.
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.
More information about the Digitalmars-d-announce
mailing list