Lots of low hanging fruit in Phobos

Tobias Pankrath tobias at pankrath.net
Sun Mar 9 04:17:13 PDT 2014


On Sunday, 9 March 2014 at 11:00:13 UTC, Peter Alexander wrote:
> On Sunday, 9 March 2014 at 10:30:37 UTC, bearophile wrote:
>> w0rp:
>>
>>>> 3. Give up on maximum performance (fiber-based coroutine 
>>>> range)
>>>
>>> I think that's what I would go for.
>>
>> Yet there's no need for that. You can have your pie and eat it 
>> too, with a small cost. D can rewrite code that contains a 
>> yield in an efficient finite state machine (this is what 
>> ShedSkin compiler for Python does, and perhaps the C# compiler 
>> does the same).
>
> How does this handle recursive generators, e.g. like you would 
> see with a depth-first tree traversal? The "state" in this case 
> is a call stack. How is the memory allocated for the stack?

The generators mentioned are stack-less. You'd need to maintain 
the stack yourself.


More information about the Digitalmars-d mailing list