My Dark emscripten secrets
Joshua Koo, 23 feb 2015, talk.js
What is Emscripten?
Emscripten is an LLVM-to-JavaScript compiler. It takes LLVM bitcode - which can be generated from C/C++, using llvm-gcc (DragonEgg) or clang, or any other language that can be converted into LLVM - and compiles that into JavaScript, which can be run on the web (or anywhere else JavaScript can run).
Emscripten is an LLVM-based project that compiles C and C++ into highly-optimizable JavaScript in asm.js format. This lets you run C and C++ on the web at near-native speed, without plugins.
Why?
Some Inception
emcmake cmake . emmake make
oh oh....
: (
make clean
git checkout
google errors
stackoverflow
(repeat)
....
I struggle with Emscripten
(OPEN) SECRET #1
-
these projects weren't trivial
-
maybe my Emscripten environment wasn't setup correctly
-
I wasn't familiar with C or C++ world
-
I wasn't familiar with the build systems
What went wrong?
study the requirements
Understand the source
Compile native
understand emscripten
Pick a simplier project
HLSL2GLSL
Dump the Build Systems
(pun intended)
emcc src/*.cpp -o hlslparser.js -s EXPORTED_FUNCTIONS="['_parseHLSL']" --bind -O3
GLSL Optimizer
Dump the Build Systems
Some other tips
1. Check for threads
2. Check File I/O
3. Consider bindings
What's Next?
Fluidsynth
conclusion
The C* & JS world are not that far apart
I think emscripten is kinda awesome
There are more things out there
have fun!
I'm Joshua Koo
I work for Zopim, a Zendesk company
and organize creative coding meetups
twitter: @blurspline
facebook: fb
github: zz85
Links!
My forks
https://github.com/zz85/hlslparser
https://github.com/zz85/glsl-optimizer
Documentation
https://github.com/kripken/emscripten/wiki
http://kripken.github.io/emscripten-site/
More Readings!
https://hacks.mozilla.org/2014/11/porting-to-emscripten/ http://mozakai.blogspot.sg/2013/11/c-to-javascript-emscripten-mandreel-and.html http://ejohn.org/blog/asmjs-javascript-compile-target/ https://github.com/gsathya/SDL-emscripten/wiki/Building-with-CMake http://mozakai.blogspot.sg/2012/03/howto-port-cc-library-to-javascript.html http://kripken.github.io/emscripten-site/docs/api_reference/emscripten.h.html#c.em_str_callback_func http://kripken.github.io/emscripten-site/docs/optimizing/Optimizing-Code.html http://kripken.github.io/emscripten-site/docs/api_reference/val.h.html
my dark emscripten secrets
By Joshua Koo
my dark emscripten secrets
my dark emscripten secrets
- 21,264