2011/3/2 David Chisnall <[email protected]>:
> On 2 Mar 2011, at 12:26, Frédéric Point wrote:
>
>> Is the obc_msgSend function available in other Obj-C runtime ? Do you
>> have some plan to implement it in the new libobjc2 ?
>
> No, there are no plans to implement it.  It is not possible to implement in a 
> portable way - the Mac runtime needs completely different implementations for 
> each of the supported architectures, plus different variations for methods 
> that return floating point values and structures.  This would not be feasible 
> for us to do in something that needs to be portable.
>
>> Where in OSX environnment this function is implemented (libSystem or dyld) ?
>
> In libobjc.  OS X also does some cheating in dyld so libobjc is always loaded 
> at the same location in memory, so you can do a direct jump to objc_msgSend().
>
> If you want a portable solution, then you can use 
> class_getMethodImplementation(), but it's not very sensible.
>
> David

OK, so GNUstep implements the high level parts of the Gnustep/Cocoa
API layers but has a quite different implementation of the ObjC
runtime. I was wrong to think the low-level messaging system was part
of NeXT/Open/Gnustep API.

Many thanks for these clarifications.

Would it be difficult to implement a wrapper for a small subset of
architectures (eg: ppc, i386, amd64, arm)? I could be very interested
to spend some time on it in a few months.

Fred.

_______________________________________________
Etoile-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/etoile-discuss

Répondre à