Proposal for porting D runtime to WebAssembly

Nick Sabalausky (Abscissa) SeeWebsiteToContactMe at semitwist.com
Sat Nov 23 23:21:49 UTC 2019


On 11/23/19 3:48 PM, Sebastiaan Koppe wrote:
> On Saturday, 23 November 2019 at 15:23:41 UTC, Alexandru Ermicioi wrote:
>>
>> I was wondering whats your position on Fibers?
> 
> I am not going to support them in this initial port. And to be honest I 
> rather see us moving towards stackless coroutines.

I really hope you're right. I've been pushing for those for years, but 
never got the impression anyone else cared. The fact that C# has had 
them for eons and D still seems to have no interest in coroutines that 
*don't* involve the overhead of fibers bothers me to no end.

I did started working on a couple DIPs for them, though. Interestingly, 
I just found out today about C++'s proposed coroutines and was shocked 
by how similar they are to what I was designing; even right down to 
details like how the existence of a yield instruction is what triggers 
the compiler to treat the function as a coroutine, and the requirement 
that a coroutine's return type be a special type that includes the state 
information.

Still, a few differences, though. For example, unlike the C++ proposal, 
I'm hoping to avoid the need for additional keywords and heap 
allocation. And I also started a secondary DIP that builds on the 
coroutine foundation to make a much cleaner user-experience using the 
coroutines to generate ranges (what I would expect to be the most common 
use-case).


More information about the Digitalmars-d-announce mailing list