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