On Mon, 21 Jan 2013 11:48:58 +0100 "deadalnix" <deadal...@gmail.com> wrote:
> On Monday, 21 January 2013 at 09:18:34 UTC, Timon Gehr wrote: > > On 01/21/2013 10:08 AM, deadalnix wrote: > >> On Monday, 21 January 2013 at 08:27:28 UTC, Nick Sabalausky > >> wrote: > >>> Stackless "fibers": Requires gross syntactical contortions > >>> much like > >>> opApply does. > >> > >> Can you explain more what a stackless fiber is ? From the > >> linked posted > >> above I did really understood, as the example code clearly call > >> functions, which require stack. > > > > A stackless fiber does not have the execution stack as part of > > its context. (Therefore it cannot yield from nested function > > calls.) > > Ho yeah, I looked at the implementation. It is mostly made of > macro that create a function with a big switch in it. > > Why can't this be done in D ? What are the major problems ? I don't know whether or not it can be done in D. But, if it can be done, it would definitely require awkward syntax. Probably more awkward than the preprocessor-based syntax of the C/C++ version. (Not that I want a preprocessor in D.) Maybe you could do it by sticking the whole coroutine into a string literal that gets ripped apart and reassembled by a CTFE D parser, but that would just be so clumsy and error-prone, and frankly far more complex than should really be necessary, that I'd call it more of a kludge than a solution. And really, if I have to write D code inside a string literal to use it, that alone indicates that we're looking down the wrong path.