You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement toolchain libraries for working with WebAssmebly:
Assembling WAT / WAST (WebAssembly Text format) files to WASM (WebAssembly Binary format)
Disassembling WASM to WAT/WAST
Builder API for generating WASM modules programatically
Linker - link multiple .wasm files into a single .wasm file
Implement WebAssembly compiler backend in D and integrate it with dmd
This backend should focus on:
implementation quality - unlike the current x86 dmd backend, which was written in old-style C, the new wasm backend should be written in modern D-style and should follow software engineering best practices, like unit testing
Backend optimizations are not important, as there are ahead of time compilers for WebAssembly that can sophisticated optimization on the unoptimized wasm output from dmd
Port druntime to WebAssembly + WASI
Port phobos to WebAssembly + WASI
What are rough milestones of this project?
The project can be split in two:
adding WebAssembly backend to dmd
porting Druntime and Phobos to WebAssembly and using LDC for D->Wasm compilation
and each one can be worked on to some extent independently from the other (e.g. the webassembly backend will compile programs in "BetterC" mode until druntime and phobos are ported.
How does this project help the D community?
It expands the range of platforms and uses cases that D supports
I can definitely see value in druntime support (#108 may be related), but what value does DMD support have? I don't think fast compilation is guaranteed anymore with the major backend changes required for that.
Would this cover the emscripten platform as well? A number of pre-WASI projects (such as SDL) out there only support it, and it may be worth considering for compatibility.
WebASM support for DRuntime has filtered up our project list. We had a discussion about it in a recent planning session. There's no appetite for doing anything in dmd for it right now.
Description
.wasm
files into a single.wasm
fileWhat are rough milestones of this project?
The project can be split in two:
and each one can be worked on to some extent independently from the other (e.g. the webassembly backend will compile programs in "BetterC" mode until druntime and phobos are ported.
How does this project help the D community?
It expands the range of platforms and uses cases that D supports
Recommended skills
Point of Contact
References
<NG discussions, GitHub PRs, Bugzilla issues, ...>
The text was updated successfully, but these errors were encountered: