K dispozícii je kompilátor Emscripten 3.0, C/C++ do WebAssembly

Bolo zverejnené vydanie kompilátora Emscripten 3.0, ktorý vám umožňuje kompilovať kód v C/C++ a ďalších jazykoch, pre ktoré sú dostupné frontendy založené na LLVM, do univerzálneho nízkoúrovňového stredného kódu WebAssembly pre následnú integráciu s projektmi JavaScript. vo webovom prehliadači a používať v Node.js alebo vytvárať samostatné multiplatformové aplikácie, ktoré bežia pomocou runtime wasm. Kód projektu je distribuovaný pod licenciou MIT. Kompilátor využíva vývoj z projektu LLVM a knižnica Binaryen sa používa na generovanie a optimalizáciu WebAssembly.

Hlavným cieľom projektu Emscripten je vytvoriť nástroj, ktorý vám umožní spúšťať kód na webe bez ohľadu na programovací jazyk, v ktorom je kód napísaný. Kompilované aplikácie môžu používať volania štandardných knižníc C a C++ (libc, libcxx), rozšírenia C++, multithreading na báze pthreads, POSIX API a mnoho multimediálnych knižníc. Rozhrania API na integráciu s webovým rozhraním API a kód JavaScript sa poskytujú samostatne.

Emscripten podporuje vysielanie výstupu knižnice SDL2 cez Canvas a tiež poskytuje podporu pre OpenGL a EGL cez WebGL, čo umožňuje konvertovať grafické aplikácie a hry do WebAssembly (napríklad existuje port sady nástrojov Qt a podporuje Unreal Engine 4 a Unit herné motory, fyzický Bullet engine). Okrem kompilácie kódu v C/C++ sa samostatne vyvíjajú projekty na zabezpečenie spustenia tlmočníkov a virtuálnych strojov v prehliadačoch pre jazyky Lua, C#, Python, Ruby a Perl. Na LLVM je tiež možné použiť iné rozhrania ako Clang, dostupné pre jazyky ako Swift, Rust, D a Fortran.

Hlavné zmeny v Emscripten 3.0:

  • Knižnica musl C používaná v emscripten bola aktualizovaná na verziu 1.2.2 (verzia 2 bola použitá vo vetve Emscripten 1.1.15.x).
  • Časť funkcií, ktoré sa používali najmä v rámci projektu, bola odstránená z knižnice parseTools.js: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isTDefucturalType isTDefuntPaructural, isPosssibleFunctionType, isFunctionType, getReturnType, splitTokenList, _IntToHex, IEEEUnHex, Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • V šablónach shell.html a shell_minimal.html je výstup chybových hlásení, ktoré sa vyskytnú počas prevádzky emscripten a sú výstupom aplikácie cez stderr, štandardne prepnutý na použitie console.warn namiesto console.error.
  • Pridaná možnosť špecifikovať špecifické kódovanie textu používané v názvoch súborov. Kódovanie je možné zadať vo forme prípony pri odovzdávaní názvu súboru, napríklad „a.rsp.utf-8“ alebo „a.rsp.cp1251“).

Zdroj: opennet.ru

Pridať komentár