Thread overview
compile D to asm.js using ldc --betterC and emcc
Oct 07, 2017
cosinus
Oct 07, 2017
Suliman
Oct 07, 2017
cosinus
Oct 08, 2017
Dukc
Nov 14, 2017
SrMordred
Nov 14, 2017
Joakim
Nov 14, 2017
Walter Bright
October 07, 2017
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, 2017
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, 2017
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, 2017
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?
November 14, 2017
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?

November 14, 2017
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/
November 14, 2017
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.