Available ang Emscripten 3.0, isang C/C++ to WebAssembly compiler

Ang paglabas ng Emscripten 3.0 compiler ay nai-publish, na nagbibigay-daan sa iyong mag-compile ng code sa C/C++ at iba pang mga wika kung saan ang mga frontend na nakabatay sa LLVM ay magagamit sa unibersal na mababang antas na intermediate code na WebAssembly, para sa kasunod na pagsasama sa mga proyekto ng JavaScript, tumatakbo sa isang web browser, at ginagamit sa Node. js o paggawa ng mga stand-alone na multi-platform na application na tumatakbo gamit ang wasm runtime. Ang code ng proyekto ay ipinamahagi sa ilalim ng lisensya ng MIT. Gumagamit ang compiler ng mga development mula sa proyekto ng LLVM, at ang Binaryen library ay ginagamit para sa pagbuo at pag-optimize ng WebAssembly.

Ang pangunahing layunin ng proyekto ng Emscripten ay lumikha ng isang tool na nagbibigay-daan sa iyong magsagawa ng code sa Web anuman ang programming language kung saan nakasulat ang code. Ang mga pinagsama-samang application ay maaaring gumamit ng mga tawag sa karaniwang C at C++ na library (libc, libcxx), C++ extension, pthreads-based multithreading, POSIX API, at maraming multimedia library. Ang mga API para sa pagsasama sa Web API at JavaScript code ay ibinibigay nang hiwalay.

Sinusuportahan ng Emscripten ang pagsasahimpapawid ng output ng SDL2 library sa pamamagitan ng Canvas, at nagbibigay din ng suporta para sa OpenGL at EGL sa pamamagitan ng WebGL, na nagbibigay-daan sa iyong i-convert ang mga graphical na application at laro sa WebAssembly (halimbawa, mayroong port ng Qt toolkit at sumusuporta sa Unreal Engine 4 at Unit game engine, pisikal na Bullet engine). Bilang karagdagan sa pag-compile ng code sa C/C++, ang mga proyekto ay binuo nang hiwalay upang matiyak ang paglulunsad ng mga interpreter at virtual machine sa mga browser para sa mga wikang Lua, C#, Python, Ruby at Perl. Posible ring maglapat ng mga non-Clang na frontend sa LLVM, na magagamit para sa mga wika tulad ng Swift, Rust, D at Fortran.

Mga pangunahing pagbabago sa Emscripten 3.0:

  • Ang musl C library na ginamit sa emscripten ay na-update sa bersyon 1.2.2 (bersyon 2 ay ginamit sa Emscripten 1.1.15.x branch).
  • Ang isang bahagi ng mga function na pangunahing ginamit sa loob ng proyekto ay inalis mula sa parseTools.js library: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralType, isStructuralType getStructuralType unctionDef, isPossiblyFunctionType, isFunctionType, getReturnType, splitTokenList, _IntToHex, IEEEUnHex , Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • Sa mga template ng shell.html at shell_minimal.html, ang output ng mga mensahe ng error na nangyayari sa panahon ng pagpapatakbo ng emscripten at na-output ng application sa pamamagitan ng stderr ay inililipat bilang default upang gamitin ang console.warn sa halip na console.error.
  • Idinagdag ang kakayahang tumukoy ng isang partikular na text encoding na ginamit sa mga pangalan ng file. Maaaring tukuyin ang pag-encode sa anyo ng isang suffix kapag ipinapasa ang pangalan ng file, halimbawa, "a.rsp.utf-8" o "a.rsp.cp1251").

Pinagmulan: opennet.ru

Magdagdag ng komento