On Wednesday, 18 October 2017 at 08:56:21 UTC, Satoshi wrote:

async/await (vibe.d is nice but useless in comparison to C# or js async/await idiom)


Reference counting when we cannot use GC...


If I understand correctly, both of these depend on implementation of 'scope' which is being worked on right now.

I think reference counting needs 'scope' to be made safe. RC also benefits from scope in that many of the increments/decrements of the ref count can be elided. The performance gain can be significant, and even more so when you use atomic reference counting (like C++ shared_ptr) for thread safety.

Async/Await needs to allocate state for the function's local variables. When it's detected that the function's state/enumerator won't escape it's current scope, it can be put on the stack, which is a pretty big optimization.

I should also note that, RC has been formally acknowledged as a future goal of D, but as far as I know, async/await has not.




Reply via email to