D Language Quarterly Meeting Summary for January 2021

ag0aep6g anonymous at example.com
Mon Jan 24 11:33:52 UTC 2022


On 24.01.22 03:11, Mathias LANG wrote:
> Actually, the idea I had in mind is a little different.
> Because a delegate is essentially:
> ```D
> T function (T, Args..)(void* ctx, Args args)
> ```
> 
> It should be possible for the compiler to generate a call to a 
> trampoline function that just forwards to the actual function:
> ```D
> RT _d_trampoline (FT, RT, Args..)(void* ctx, Args args)
> {
>      return (cast(FT) ctx)(args);
> }
> ```

As far as I'm aware, Walter is against that.

<https://issues.dlang.org/show_bug.cgi?id=17156#c3>:
> The compiler could, behind the curtain, generate a wrapper to do this (as you suggest), but that has negative performance implications that users could find very surprising because it would be hidden from them. I prefer the library template solution for that reason.

But that was years ago, maybe he's more open to the idea now.


More information about the Digitalmars-d-announce mailing list