Re: Use coroutines for avr-gcc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 22 Sept 2022 at 13:29, Wilhelm Meier wrote:
>
> According to the standard, an implementation can avoid the
> heap-allocation, if
> - the lifetime of the coroutine is strictly within the lifetime of the
> caller
> - the size of coroutine state can be determined at compile time
>
> Looks like this optimization is not yet available because new/delete-ops
> are required.
>
> Is there any work on this topic?

The so-called HALO optimizations are much more difficult than was
originally thought when the wording in the standard was written.

https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2477r3.html#background-and-motivation
describes some of the problems.


> Thanks!
>   Wilhelm
>
> On 21.09.22 15:38, Wilhelm Meier wrote:
> > I tried to use coroutines with avr-gcc (13.0.0) for the AVR target. I
> > managed to include the coroutine-header and to write a very simple
> > generator using the example from cppreference.
> >
> > It compiles well, but then I get undefined symbols:
> >
> > 1) new and delete operator-functions
> > 2) f(f()::f().Frame*)
> >
> > Therefore two question arise here:
> >
> > a) is it possible to use coroutines without head-allocation? E.g. define
> > some global storage for the state of the coroutine?
> > b) if a) can be fullfilled, what is 2) supposed to do?
> >
> > Thanks for any hints,
> >   Wilhelm



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux