EMSCripten 3.0 available, C / C ++ compiler in Webassembly

Published Significant Completor Release Emscripten 3.0 , allowing you to compile code on C / C ++ and other languages ​​for which there are front-level front-level intermediate webssembly intermediate code, for subsequent integration with JavaScript projects, startup in a web browser, use in Node.js or creating separate multi-platform applications running using WASM Runtime. Project code extends under the MIT license. The compiler is used by LLVM projects, and a /webassembly/binaryen”> binaryen

The main goal of the development of the EMSCRIPTEN project is the main goal of the development of the tool project. allowing you to perform in the Web code regardless of the programming language on which this code is written. Calls of standard C and C ++ (LIBC, LIBCXX) libraries (LIBC, LIBCXX), C ++ extensions, PTHREADS database, POSIX API and many multimedia libraries can be used in compiled applications. Separately, APIs are provided for integration with the Web API and code on JavaScript.

emscripten supports the output broadcast of the SDL2 library via Canvas, and also provides support for OpenGL and EGL via WebGL, which allows you to transform into webassembly including graphic applications and games ( For example, there is a Qt fulk port and support Unreal Engine 4 and Unit game engines, Physical Bullet engine). In addition to compiling code on C / C ++ separately develop projects to ensure launch in interpreter browsers And virtual machines for Lua languages, C #, Python, Ruby and Perl. It is also possible to use other than Clang frontands to LLVM available for languages ​​such as SWIFT, RUST, D and Fortran.

Basic changes to EMSCripten 3.0:

  • Musl Updated to version 1.2.2 (in the EMSCripten 2 branch. X used version 1.1.15).
  • From the library parseTools.js removed a portion of functions, which are mainly used in the project: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralTypeParts, getStructuralTypePartBits, isFunctionDef, isPossiblyFunctionType, isFunctionType, getReturnType, splitTokenList, _Inttohex, ieeeeunhex, compiletime.ispointertype, compiletime.isstructtype, compiletime.int_types, iStype.
  • in Shell.html and shell_minimal.html templates Displays error messages arising during EMSCripten and issued by the application via STDerr, the default is shown by using Console.warn instead of Console.error.
  • Added the ability to specify a specific text encoding used in file names. The encoding can be set in the form of a suffix when the file name is transmitted, for example, “a.rsp.utf-8” or “A.rsp.cp1251”).
/Media reports.