One minute to twelve: last chance to fix D2 ABI?
Steve Teale
steve.teale at britseyeview.com
Wed Mar 3 07:34:48 PST 2010
On Wed, 03 Mar 2010 01:38:58 -0500, Robert Jacques wrote:
> On Wed, 03 Mar 2010 01:00:46 -0500, Steve Teale
> <steve.teale at britseyeview.com> wrote:
>>
>>> * Binding a delegate to a function pointer will always need a
>>> (dynamic) thunk, because the function will have been invoked without
>>> any context pointer and it's the thunk's responsibility to assign the
>>> correct context pointer.
>>
>> At present, D's way of handling delegates requires patching GCC for the
>> GDC implementation. If an ABI change was made it would be nice if it
>> fitted into the GCC trampoline model.
>>
>> Steve
>
> Um, how exactly? I just read the wikipedia page on GCC trampoline and it
> a) targeted only at nested functions b) utilizes self-modifying code
> which is disabled on any sensible platform c) would require dynamic
> allocation and d) actually uses more memory than D's method. Some time
> ago there was a link to an excellent article (by Walter? Don?) on
> different ways to do this. I remember d's way coming out the best, but
> I've seemed to have lost the link.
I'm just quoting from something I noticed a couple of days ago. In David
Friedman's make file for GDC there is:
# Enables correct implementation of delegates. This requires patching GCC.
D_EXTRA_DEFINES += -DD_NO_TRAMPOLINES=1
Steve
More information about the Digitalmars-d
mailing list