Emscripten 3.0, C/C++ ngadto sa WebAssembly compiler anaa

Ang pagpagawas sa Emscripten 3.0 compiler gipatik, nga nagtugot kanimo sa pag-compile sa code sa C/C ++ ug uban pang mga pinulongan diin ang LLVM-based frontends anaa sa universal low-level intermediate code WebAssembly, alang sa sunod nga pag-integrate sa mga proyekto sa JavaScript, nga nagdagan. sa usa ka web browser, ug gamiton sa Node. js o paghimo og stand-alone nga multi-platform nga mga aplikasyon nga modagan gamit ang wasm runtime. Ang code sa proyekto giapod-apod ubos sa lisensya sa MIT. Ang compiler naggamit sa mga kalamboan gikan sa proyekto sa LLVM, ug ang Binaryen library gigamit sa pagmugna sa WebAssembly ug pag-optimize.

Ang panguna nga katuyoan sa proyekto sa Emscripten mao ang paghimo usa ka himan nga nagtugot kanimo sa pag-execute sa code sa Web bisan unsa pa ang programming language diin gisulat ang code. Ang gihugpong nga mga aplikasyon makagamit ug mga tawag sa standard nga C ug C++ nga mga librarya (libc, libcxx), C++ extensions, pthreads-based multithreading, POSIX APIs, ug daghang multimedia library. Ang mga API alang sa paghiusa sa Web API ug JavaScript code gihatag nga gilain.

Gisuportahan sa Emscripten ang pagsibya sa output sa SDL2 library pinaagi sa Canvas, ug naghatag usab suporta alang sa OpenGL ug EGL pinaagi sa WebGL, nga nagtugot kanimo sa pag-convert sa mga graphical nga aplikasyon ug mga dula sa WebAssembly (pananglitan, adunay pantalan sa Qt toolkit ug nagsuporta sa Unreal Engine 4 ug Unit game engine, pisikal nga Bullet engine). Gawas pa sa pag-compile sa code sa C/C++, ang mga proyekto gilain-lain nga gigama aron maseguro ang paglansad sa mga interpreter ug virtual machine sa mga browser para sa mga pinulongan nga Lua, C#, Python, Ruby ug Perl. Posible usab nga i-aplay ang mga non-Clang frontends sa LLVM, nga magamit alang sa mga pinulongan sama sa Swift, Rust, D ug Fortran.

Mga dagkong kausaban sa Emscripten 3.0:

  • Ang musl C library nga gigamit sa emscripten gi-update sa bersyon 1.2.2 (bersyon 2 gigamit sa Emscripten 1.1.15.x nga sanga).
  • Ang usa ka bahin sa mga gimbuhaton nga kasagarang gigamit sulod sa proyekto gikuha gikan sa parseTools.js library: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralType, isStructuralType unctionDef, isPossiblyFunctionType, isFunctionType, getReturnType, splitTokenList, _IntToHex, IEEEUnHex , Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • Sa shell.html ug shell_minimal.html templates, ang output sa mga mensahe sa sayop nga mahitabo sa panahon sa operasyon sa emscripten ug mao ang output sa aplikasyon pinaagi sa stderr gibalhin pinaagi sa default sa paggamit sa console.warning kay sa console.error.
  • Gidugang ang abilidad sa pagtino sa usa ka piho nga pag-encode sa teksto nga gigamit sa mga ngalan sa file. Ang pag-encode mahimong matino sa porma sa usa ka suffix kung ipasa ang ngalan sa file, pananglitan, "a.rsp.utf-8" o "a.rsp.cp1251").

Source: opennet.ru

Idugang sa usa ka comment