ping

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.

Reply via email to