Dlang + emscripten

Dukc ajieskola at gmail.com
Thu May 16 19:27:15 UTC 2019


On Thursday, 16 May 2019 at 18:23:12 UTC, SrMordred wrote:
> I´m following this link to build d+sdl2+emscripten on web:
> https://theartofmachinery.com/2018/12/20/emscripten_d.html
>
> And, i´m was able to compile but i get the warnings
> warning: Linking two modules of different data layouts / target 
> triples
> even when I compile using x86. So i´m not sure if this is a LDC 
> or Emscripten issue.
>
> Someone is also exploring emscripten?

I did previously use it. It is tedious, but can be done if you 
have basic understanding of what you're doing and try long enough.

LDC does not know it's compiling to Emscripten, it outputs 
bytecode thinking it'll be compiled to some other platform. This 
is bound to cause all sort of problems when you try to import 
anything.

I recommend you use https://code.dlang.org/packages/spasm (which 
I have ported my code to) instead. You definitely will have 
nowhere as easy time working with them as with desktop, but it's 
better than a homemade ldc-linker-emscripten build system. You 
are also able to generate D bindings to web apis here, no need to 
write JavaScript wrappers manually. Disadvantages are that you 
don't have a C runtime, and you can only target WebAssembly which 
is more difficult to call from JavaScript than asm.js.

If you still choose to use Emscripten, check 
https://github.com/CyberShadow/dscripten-tools. Unlike Spasm, it 
won't give you web API, but it should ease development in other 
ways and give you some of the standard library stuff you don't 
have otherwise. I haven't used it so no idea how good it is in 
practice.

Generally, D is not currently good at targeting JavaScript. Just 
good enough that an experienced D coder could get it competitive 
in the right situation, but generally not good.


More information about the Digitalmars-d-learn mailing list