www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - compile D to asm.js using ldc --betterC and emcc

reply cosinus <dummy dummy.dummy> writes:
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
Oct 07
next sibling parent reply Suliman <evermind live.ru> writes:
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?
Oct 07
parent cosinus <dummy dummy.dummy> writes:
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.
Oct 07
prev sibling next sibling parent reply Dukc <ajieskola gmail.com> writes:
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?
Oct 08
parent reply SrMordred <patric.dexheimer gmail.com> writes:
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?
Nov 14
parent Joakim <dlang joakim.fea.st> writes:
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.
Nov 14
prev sibling parent Walter Bright <newshound2 digitalmars.com> writes:
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/
Nov 14