4 ms·
I guess Emscripten is the less reliable route. I think one can't reasonably expect any C++ code to be readily compileable with emscripten with no modifications
by nice_byte 11y ago
I guess Emscripten is the less reliable route. I think one can't reasonably expect any C++ code to be readily compileable with emscripten with no modifications whatsoever
- Ace17 11y agoYou might be surprised when you try it. Emscripten probably is the most reliable route, and also the most secure (Javascript VM sandboxing, which you don't have with native CGIs). If your C++ code doesn't directly use system APIs (CreateFileA, execvp(), etc.) or extra I/O libraries (OpenGL1.0, SDL2), Emscripten will compile it just fine.
- nice_byte 11y ago> If your C++ code doesn't directly use system APIs or extra I/O libraries That's exactly the case I had in mind. Most C++ code hasn't really been written with Emscripten in mind
- kartan 11y agoWe are using Emscripten for compiling C++ to to Javascript and use it on the browser. And it works well. So at this moment we can use the same code base for Android(JNI)/iOS/Facebook. It works perfectly well. Why do you think that it is not reliable?
- nice_byte 11y agoI assume you wrote your code while keeping in mind that it will be compiled by ES. But we're talking about porting legacy code. ES may be reliable, but you have to have the source code for all of your dependencies and not rely on platform-specific functions at all.
- azakai 11y agoIn general there is no need to write code in mind for compiling with Emscripten. The codebase just needs to be reasonably portable C++ or C. For example, if the codebase runs on both x86 desktop and ARM Android, then it will almost certainly run properly using Emscripten. For APIs, you also need to use something portable and standard, like SDL for example.
- kartan 11y agoWe are using Emscripten for compiling C++ to to Javascript and use it on the browser. And it works well. So at this moment we can use the same code base for Android(JNI)/iOS/Facebook. It works perfectly well. Why do you think that it is not reliable?