www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Anyone tried to emscripten a D/SDL game?

reply Nick Sabalausky "Abscissa" <a a.a> writes:
Anyone have any experience (successful or unsuccessful) 
attempting this? Any info on the current state of it, or 
pitfalls, or pointers for getting started?
May 24 2017
parent reply Guillaume Piolat <first.last gmail.com> writes:
On Wednesday, 24 May 2017 at 17:00:51 UTC, Nick Sabalausky 
"Abscissa" wrote:
 Anyone have any experience (successful or unsuccessful) 
 attempting this? Any info on the current state of it, or 
 pitfalls, or pointers for getting started?
http://code.alaiwan.org/wp/?p=103
May 24 2017
next sibling parent reply Nick Sabalausky "Abscissa" <a a.a> writes:
On Wednesday, 24 May 2017 at 17:06:55 UTC, Guillaume Piolat wrote:
 http://code.alaiwan.org/wp/?p=103
Awesome, thanks!
May 24 2017
parent reply Sebastien Alaiwan <ace17 free.fr> writes:
On Wednesday, 24 May 2017 at 17:08:06 UTC, Nick Sabalausky 
"Abscissa" wrote:
 On Wednesday, 24 May 2017 at 17:06:55 UTC, Guillaume Piolat 
 wrote:
 http://code.alaiwan.org/wp/?p=103
Awesome, thanks!
Author here ; the blogpost is indeed interesting but it's outdated. It's a lot more simpler now that the "LDC + emscripten-fastcomp" combination works (no need for intermediate C lowering anymore) The whole simplified toolchain and example project live here: https://github.com/Ace17/dscripten If you have questions about how this work, I'd be glad to answer them!
Jun 04 2017
parent reply Johan Engelen <j j.nl> writes:
On Monday, 5 June 2017 at 05:22:44 UTC, Sebastien Alaiwan wrote:
 The whole simplified toolchain and example project live here: 
 https://github.com/Ace17/dscripten
Are you planning on upstreaming some of your work to LDC? Please do! :-) Looks like it is relatively easy to integrate most of your changes. For `llvm::Triple::asmjs` and `llvm::Triple::Emscripten`, what predefined versions would you propose ? Have a look here: https://dlang.org/spec/version.html#predefined-versions Cheers, Johan
Jun 05 2017
parent Sebastien Alaiwan <ace17 free.fr> writes:
On Monday, 5 June 2017 at 10:48:54 UTC, Johan Engelen wrote:
 On Monday, 5 June 2017 at 05:22:44 UTC, Sebastien Alaiwan wrote:
 The whole simplified toolchain and example project live here: 
 https://github.com/Ace17/dscripten
Are you planning on upstreaming some of your work to LDC? Please do! :-)
Don't let the small size of the LDC patch from dscripten deceive you ; it mangles LDC in the easiest possible way to adapt it to the quirks of emscripten-fastcomp (the LLVM fork). (the official LLVM branch doesn't even declare the asmjs/Emscripten triples). At this point, I think emscripten-fastcomp might be on the go ; especially if the WebAssembly backend from the official LLVM branch becomes widely used (at this point, I'll probably ditch emscripten-fastcomp from dscripten, to use WebAssembly instead). Some stuff that could be easily upstreamed in a clean non-emscripten specific way: - allowing to disable the build of phobos and druntime from the cmake build. - allowing to disable the build of the debug information generator. - allowing to disable the build of the tests.
Jun 05 2017
prev sibling parent reply Suliman <evermind live.ru> writes:
On Wednesday, 24 May 2017 at 17:06:55 UTC, Guillaume Piolat wrote:
 On Wednesday, 24 May 2017 at 17:00:51 UTC, Nick Sabalausky 
 "Abscissa" wrote:
 Anyone have any experience (successful or unsuccessful) 
 attempting this? Any info on the current state of it, or 
 pitfalls, or pointers for getting started?
http://code.alaiwan.org/wp/?p=103
It's seems that Dart can be compiled to WASM https://medium.com/dartlang/dart-on-llvm-b82e83f99a70 It's it's possible to do same with D?
May 24 2017
parent Sebastien Alaiwan <ace17 free.fr> writes:
On Wednesday, 24 May 2017 at 17:47:42 UTC, Suliman wrote:
 It's it's possible to [compile to WASM] with D?
It should be. LLVM has a working WebAssembly backend ; LDC might need some slight modifications to become aware of this new target. Everything that don't rely on the D runtime should work (except for bugs, e.g https://github.com/kripken/emscripten-fastcomp/issues/187 ). Then, I think the following blog post could be easily adapted for the D langage: https://medium.com/ mbebenita/lets-write-pong-in-webassembly-ac3a8e7c4591 However, please keep in mind that the target instruction set is only the tip of the iceberg ; you have to provide a target environment (like SDL bindings or a simplified D runtime), so the generated code can do anything usefull (like I/O).
Jun 04 2017