Good News: Almost all druntime supported on arsd webassembly

Hipreme msnmancini at hotmail.com
Mon Nov 6 21:47:21 UTC 2023


On Monday, 6 November 2023 at 11:05:45 UTC, Sebastiaan Koppe 
wrote:
> On Monday, 6 November 2023 at 00:47:43 UTC, Lingo Chen wrote:
>> On Sunday, 5 November 2023 at 16:18:53 UTC, Sebastiaan Koppe 
>> wrote:
>>> On Sunday, 5 November 2023 at 01:28:25 UTC, Lingo Chen wrote:
>>>> https://v8.dev/blog/wasm-gc-porting
>>>>
>>>> wasmgc is shipping. any plan for porting?
>>>
>>> My understanding is that it requires emitting dedicated 
>>> instructions for allocating such objects, as well as 
>>> dedicated instructions for accessing them. Since LLVM doesn't 
>>> support them, I am not sure what a possible path to support 
>>> should look like, aside from writing a complete fresh backend.
>>
>> https://llvm.org/devmtg/2022-11/slides/TechTalk3-ClangClang-WebAssembly.pdf
>>
>> llvm ir seems to have support for the reftype(gc). so it a 
>> compiler problem?
>
> Unsure how it's progressed since but as can be seen on the last 
> slide of that pdf, it's work in progress.

As shown in my DConf presentation, yes, the GC can be a problem 
but it is a problem in a multitude of problems on the big 
picture. Having a complete libc working with D, for not needing 
to do a massive refactor in code is a really big problem. 
Asincify was used to fix that when using through EMScripten, 
while in my engine I took a completely different approach to fix 
that, but for common projects, it is not possible to have that if 
you want to port your project to WASM.

Even then, there's the communication as shown in the 
presentation, which currently I implement as a hack in my engine 
(which I discovered accidentally from the delegates generating an 
incrementing counter), having proper support to that would be 
totally essential.

So, having a working D Runtime and Phobos is a priority, while 
the GC problem is a thing the developer should not even care and 
is an eventual fix, a simple version upgrade that would make the 
projects simply better. Done is better than perfect, if we have 
no projects in webassembly, I don't believe anyone will get 
interested enough to implement it.


More information about the Digitalmars-d-announce mailing list