On 16 October 2017 at 08:25, Ramón García wrote: > ping As previously stated, nobody is working on it.
GCC is Free Software, so if you really need ths feature you are free to add it yourself. > > On Thu, Aug 31, 2017 at 11:22 AM, Ramón García <ramon.garci...@gmail.com> > wrote: >> (repeated, forgot to reply to mailing list) >> >> Xi Ruoyao misses completely the point! >> >> The amount of error prone boilerplate code, that the programmer would >> have to write, is huge. See examples in the excellent presentation >> "C++ coroutines: a negative overhead abstraction" >> https://www.slideshare.net/SergeyPlatonov/gor-nishanov-c-coroutines-a-negative-overhead-abstraction >> Video: https://www.youtube.com/watch?v=_fu0gx-xseY >> >> What one can have with a coroutine library, are stackfull coroutines. >> But they are not really useful. Not very scalable. The simplification >> of programming has a high cost. >> >> With stackless coroutines, one can combine the simplicity of >> sequential programming, with the scalability and efficiency of >> asynchronous programming. >> >> Did you ever read Linux kernel code? There is a lot of hand written >> code that tries to achieve a sequence of actions using chained >> callbacks: >> >> void A() >> { >> a1(); >> when event E1 happens, run B >> } >> >> void B() >> { >> b1(); >> when event E2 happends, run C >> } >> >> void C() >> { >> c1() >> } >> >> with Coroutines TS this is turned into >> >> void A() >> { >> a1(); >> co_await E1; >> b1(); >> co_await E2; >> c1(); >> } >> >> but have the same efficiency and scalability of asynchronous code. >> >> On Sat, Aug 19, 2017 at 5:49 PM, Jonathan Wakely <jwakely....@gmail.com> >> wrote: >>> See the thread on gcc-help: >>> https://gcc.gnu.org/ml/gcc-help/2017-08/msg00045.html >>> >>> >>> >>> On 19 August 2017 at 14:09, Ramón García <ramon.garci...@gmail.com> wrote: >>>> ping. >>>> >>>> On Tue, Aug 15, 2017 at 2:21 PM, Ramón García <ramon.garci...@gmail.com> >>>> wrote: >>>>> Hello, >>>>> >>>>> Please consider supporting the Coroutines TS in GNU C++. >>>>> >>>>> It is really important to make asynchronous programming usable. >>>>> >>>>> Modern programs should be scalable to use the performance of multicore >>>>> processors. Stackless coroutines allow the programmer to scale to >>>>> millions of asynchronous requests. But without the primitives in the >>>>> Concurrency TS, chaining the result of an asynchronous computation to >>>>> the next step, one must program a chain of callbacks. It becomes >>>>> quickly unusable. >>>>> >>>>> The promise/future, as specified in the concurrency TS, (that is, with >>>>> the function future::then for chaining a callback to the completion of >>>>> the future) make asynchronous programming somewhat more usable. >>>>> Unfortunately, almost no C++ library shipped supports future with >>>>> then. >>>>> >>>>> This is an excellent explanation of the Coroutines TS: >>>>> >>>>> https://www.slideshare.net/SergeyPlatonov/gor-nishanov-c-coroutines-a-negative-overhead-abstraction >>>>> >>>>> Both Visual C++ 2017 and CLANG (SVN version) support the Coroutines >>>>> TS. Please consider it. >>>>> >>>>> I saw that someone started an attempt at implementing it: >>>>> https://gcc.gnu.org/ml/gcc-patches/2016-03/msg00435.html but there >>>>> were no replies.