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

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.
主站蜘蛛池模板: 高邮市| 大同县| 长乐市| 百色市| 旬邑县| 五华县| 搜索| 虞城县| 兴隆县| 湘乡市| 枣强县| 大理市| 凤台县| 思茅市| 兴城市| 澄迈县| 山阳县| 平谷区| 兴仁县| 民丰县| 昌图县| 桓台县| 平南县| 新津县| 城固县| 陕西省| 轮台县| 平山县| 台东县| 新和县| 罗平县| 行唐县| 乌鲁木齐县| 浙江省| 常熟市| 安远县| 德庆县| 无棣县| 漳州市| 涞水县| 潞城市|