| |
|
hatf0
Posted in reply to Sebastiaan Koppe
| On Friday, 15 October 2021 at 07:28:55 UTC, Sebastiaan Koppe wrote:
> On Thursday, 14 October 2021 at 22:58:37 UTC, hatf0 wrote:
> On Thursday, 14 October 2021 at 22:56:07 UTC, hatf0 wrote:
> Hi all,
I've just managed to get the full DMD front-end to work in WebAssembly (with skoppe's druntime fork).
Cool stuff. I recently picked up my wasm forks again and updated to wasi 12, ldc 1.25.0 and the accompanying druntime/phobos versions and got all tests to pass (those that I didn't version out). I am currently in the process of updating to latest ldc and latest druntime/phobos. Phobos has a bunch of merge conflicts, but it should be doable if I find a few hours.
Then there is the process of upstreaming a 5000+ line patch and I probably need some help there. I reckon the WASI bindings are pretty standalone so those should be easy to add, but there is a sprawl of additions across almost all files due to not supporting threads, fibers and catching exceptions.
Very cool! This all would not be possible with your wasm forks -- they are the saving grace here.
Regarding upstreaming the patch... that will be rather challenging, but I would not mind contributing. I definitely think the WASI bindings (if not all of the files in core.sys.wasi.* ) should be upstreamed first, as they're the simplest to implement, and then the various druntime patches should follow.
GC also needs some investigation (or malloc), as I keep get spurious OOM errors. Could be because dmd is one hell of a memory hog, but who knows.
|