LDC 1.18.0-beta1
Ivan Butygin
ivan.butygin at gmail.com
Mon Sep 23 20:57:49 UTC 2019
On Monday, 23 September 2019 at 20:24:54 UTC, jmh530 wrote:
> On Monday, 23 September 2019 at 19:40:13 UTC, Ivan Butygin
> wrote:
>> On Monday, 23 September 2019 at 12:22:47 UTC, Martin
>> Tschierschke wrote:
>>
>>> Can you please give (again?) a link or a more detailed
>>> description of the JIT, explaining some use cases?
>>
>> https://wiki.dlang.org/LDC-specific_language_changes#.40.28ldc.attributes.dynamicCompile.29
>>
>> [snip]
>
> I think the wiki has room for improvement...or, ideally, there
> would be a tutorial that goes through all the JIT functionality
> in LDC.
>
> I don't really understand the difference between dynamicCompile
> and dynamicCompileEmit. Is it that with dynamicCompileEmit I
> can still call foo normally? Also, do I have to use either bind
> or a delegate to get the JIT functionality? What is the
> advantage or cost of f (the binded version) and d (the delegate
> version)? Does the indirection from the delegates outweigh the
> benefit from simplified computation in these cases? Is there
> any issue with aliasing f or d to be named foo (or just calling
> them foo from the start?)?
>
> What am I doing wrong on run.dlang.org:
> https://run.dlang.io/is/itIPQK
With @dynamicCompileEmit normal calls to function will go to
static version but these functions can still be targets for bind.
Objects returned from bind are reference counted. You can get
delegate from them to use is context where delegate is expected
but you need to retain object somewhere. Delegate version will
add additional call indirection I think but otherwise they are
identical.
Also, something got broken with bools, I need to check :)
https://run.dlang.io/is/x3orGK
More information about the Digitalmars-d-announce
mailing list