On Friday, 3 August 2018 at 16:19:04 UTC, kinke wrote:
On Friday, 3 August 2018 at 14:46:59 UTC, Jonathan Marler wrote:
After thinking about it more I suppose it wouldn't be that complicated to implement. For delegate literals, you already need to gather a list of all the data you need to put on the heap, and if it can all fit inside a pointer, then you can just put it there instead.

Nope, immutability (and no escaping) are additional requirements, as each delegate copy has its own context then, as opposed to a single shared GC closure.


Maybe you could provide an example or 2 to demonstrate why these would be requirements...we may have 2 different ideas on how this would be implemented.

In the end, I think that most if not all use cases would be better off using the library solution if they want this optimization.

I disagree.

I'm not sure which part you disagree with. I was saying that with a library solution, you get the ability "opt-in"/"opt-out" of the optimization, do you think it should always be on and the developer shouldn't need to or care to opt out of it? Also, what about the developers that want to guarantee that the optimization is occuring? If they just stick a @nogc around it then how would they determine which requirement they are violating for the optimization to occur?

Reply via email to