www.digitalmars.com         C & C++   DMDScript  

digitalmars.dip.development - Second Draft: Coroutines

Stackless coroutines, is a way to enable asynchronous 
programming, for lesser skilled and less knowledgable people 
whilst offering efficient processing of events, safely.

This version of the proposal has been rewritten to account for a 
lack of understanding on the separation of library code versus 
what the language is offering.

And a few changes related to yielding. Yielding is no longer 
guaranteed to be implicit. You may explicitly yield using an 
``await`` statement should you wish to. The library type must 
support implicit yielding if you wish to use it. Both may be used 
on the same type, it is entirely dependent upon the called 
methods attributes.

Lastly, the changes have been made to simplify the descriptor to 
make the implementation within the compiler a little bit easier. 
It does mean that you as a library author have no way to know 
about the functions in the state machine (not that you could have 
done much with them).

Current: 
https://gist.github.com/rikkimax/fe2578e1dfbf66346201fd191db4bdd4/649a5a6cc68c4bfe9f5a62f746a3a90f6b4beaf4

Latest: 
https://gist.github.com/rikkimax/fe2578e1dfbf66346201fd191db4bdd4
Dec 12