官术网_书友最值得收藏!

Emscripten

Now that we know what LLVM is, we can discuss Emscripten. Emscripten was developed to compile LLVM IR into JavaScript, but has recently been updated to compile LLVM into WebAssembly. The idea is that, when you get the LLVM compiler working, you can have the benefit of all the languages that compile to LLVM IR. In practice, the WebAssembly specification is still in its early days and does not support common language features such as GC. Therefore, only non-GC languages such as C/C++ and Rust are currently supported. WebAssembly is still in the early MVP phase of its development, but the addition of GC and other common language features are coming soon. When that happens, there should be an explosion of programming languages that will compile to WebAssembly.

When Emscripten was released in 2012, it was intended to be an LLVM-to-JavaScript compiler. In 2013, support was added for asm.js, which is a faster, easily optimized subset of the JavaScript language. In 2015, Emscripten began to add support for LLVM-to-WebAssembly compiling. Emscripten also provides a Software Development Kit (SDK) for both C++ and JavaScript that provides glue code to give users better tools for interaction between JavaScript and WebAssembly than those currently offered by the WebAssembly MVP alone. Emscripten also integrates with a C/C++-to-LLVM compiler called Clang, so that you can compile your C++ into WebAssembly. In addition, Emscripten will generate the HTML and JavaScript glue code you need to get your project started.

Emscripten is a very dynamic project and changes to the toolchain happen frequently. To stay up to date with the latest changes in Emscripten, visit the project home page at  https://emscripten.org.
主站蜘蛛池模板: 松桃| 富宁县| 大姚县| 洪洞县| 景宁| 个旧市| 乐陵市| 尼勒克县| 弥渡县| 长泰县| 土默特左旗| 苍南县| 新源县| 新蔡县| 阿克陶县| 阜城县| 弋阳县| 纳雍县| 宝应县| 保靖县| 阿瓦提县| 收藏| 罗田县| 山西省| 乃东县| 凤城市| 建湖县| 沂源县| 昌邑市| 玉山县| 元氏县| 交口县| 尼玛县| 定日县| 沅江市| 长寿区| 阳山县| 绥阳县| 福贡县| 车险| 加查县|