Thread overview
compile D to asm.js using ldc --betterC and emcc
Oct 07
cosinus
Oct 07
Suliman
Oct 07
cosinus
Oct 08
Dukc
6 days ago
SrMordred
6 days ago
Joakim
6 days ago
Walter Bright
October 07
I wrote a little working demo that shows how to use D inside firefox.

It uses emscripten(emcc) and ldc.

https://github.com/cosinus2/dlang-emscripten-demo


October 07
On Saturday, 7 October 2017 at 17:31:37 UTC, cosinus wrote:
> I wrote a little working demo that shows how to use D inside firefox.
>
> It uses emscripten(emcc) and ldc.
>
> https://github.com/cosinus2/dlang-emscripten-demo

could you make it online?
October 07
On Saturday, 7 October 2017 at 18:27:53 UTC, Suliman wrote:
> could you make it online?

you mean build everything and commit?

I've just added the binaries, I can't add the whole chain, its to big.
October 08
On Saturday, 7 October 2017 at 17:31:37 UTC, cosinus wrote:
> I wrote a little working demo that shows how to use D inside firefox.
>
> It uses emscripten(emcc) and ldc.
>
> https://github.com/cosinus2/dlang-emscripten-demo

Judging by looking at that build script, sure that's simpler than what I read you had to do some time back! You had to switch to some legacy llvm and compile the indermediate first to C and only then to Asm.js.

This looks like powerful enough for normal use. You still miss DRuntime but a lot better than using C to do the same. Perhaps even better than Typescript in some cases?
6 days ago
On Sunday, 8 October 2017 at 09:48:57 UTC, Dukc wrote:
> On Saturday, 7 October 2017 at 17:31:37 UTC, cosinus wrote:
>> I wrote a little working demo that shows how to use D inside firefox.
>>
>> It uses emscripten(emcc) and ldc.
>>
>> https://github.com/cosinus2/dlang-emscripten-demo
>
> Judging by looking at that build script, sure that's simpler than what I read you had to do some time back! You had to switch to some legacy llvm and compile the indermediate first to C and only then to Asm.js.
>
> This looks like powerful enough for normal use. You still miss DRuntime but a lot better than using C to do the same. Perhaps even better than Typescript in some cases?

Can someone explain the reasons why LDC can't compiles to webasm with the DRuntime?

6 days ago
On 10/7/2017 10:31 AM, cosinus wrote:
> I wrote a little working demo that shows how to use D inside firefox.
> 
> It uses emscripten(emcc) and ldc.
> 
> https://github.com/cosinus2/dlang-emscripten-demo

Now on reddit:

https://www.reddit.com/r/programming/comments/7cuoih/compile_d_to_webassembly_using_ldc_betterc_and/
6 days ago
On Tuesday, 14 November 2017 at 10:01:51 UTC, SrMordred wrote:
> On Sunday, 8 October 2017 at 09:48:57 UTC, Dukc wrote:
>> On Saturday, 7 October 2017 at 17:31:37 UTC, cosinus wrote:
>>> I wrote a little working demo that shows how to use D inside firefox.
>>>
>>> It uses emscripten(emcc) and ldc.
>>>
>>> https://github.com/cosinus2/dlang-emscripten-demo
>>
>> Judging by looking at that build script, sure that's simpler than what I read you had to do some time back! You had to switch to some legacy llvm and compile the indermediate first to C and only then to Asm.js.
>>
>> This looks like powerful enough for normal use. You still miss DRuntime but a lot better than using C to do the same. Perhaps even better than Typescript in some cases?
>
> Can someone explain the reasons why LDC can't compiles to webasm with the DRuntime?

Nobody has done the work to port it, though someone has expressed interest and opened an issue for it:

https://github.com/ldc-developers/ldc/issues/2144

Regarding porting druntime, I'm told by some here that there are some issues with the GC and thread-local storage because of the particular wasm instruction set, but I've never looked into it.