Emscripten 3.0, zostava nástrojov pre WebAssembly pomocou LLVM

Nedávno bolo oznámené vydanie novej verzie kompilátora Emscripten 3.0, ktorý sa vyznačuje tým, že umožňuje kompilovať kód v C/C++ a ďalších jazykoch, pre ktoré sú dostupné frontendy založené na LLVM, v nízkoúrovňovom univerzálnom middleware WebAssembly.

Hlavnou funkciou tejto kompilácie je jej následná integrácia s projektmi JavaScript, spustenie vo webovom prehliadači a použitie v Node. Js alebo vytvorte multiplatformové samostatné aplikácie, ktoré bežia s runtime wasm.

O Emscriptene

Hlavný cieľ vývoj 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 napísaný.

Kompilované aplikácie môžu používať štandardné volania knižníc C a C++ (libc, libcxx), rozšírenia C++, multithreading založený na 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.

Prihlásiť Se podporuje streamovanie výstupu knižnice SDL2 cez Canvasa tiež poskytuje podporu OpenGL a EGL prostredníctvom WebGL, čo vám umožňuje konvertovať grafické aplikácie a hry na WebAssembly.

Do WebAssembly je možné pomocou Emscriptenu skompilovať prakticky akúkoľvek prenosnú základňu kódu C alebo C++Od vysokovýkonných hier, ktoré potrebujú vykresľovať grafiku, prehrávať zvuky a načítať a spracovať súbory, až po aplikačné rámce, ako je Qt. Emscripten už bol použitý na konverziu veľmi dlhého zoznamu reálnych kódových báz na WebAssembly, vrátane komerčných kódových báz, ako sú Unreal Engine 4 a Unity Engine.

Okrem kompilácie kódu C / C ++ sa projekty vyvíjajú samostatne, aby sa zabezpečilo, že tlmočníci a virtuálne stroje pre Lua, C #, Python, Ruby a Perl sa spúšťajú v prehliadačoch. Je tiež možné použiť rozhrania, ktoré nie sú Clang, na LLVM dostupné pre jazyky ako Swift, Rust, D a Fortran.

Treba poznamenať, že existujú rozdiely medzi natívnym runtime a Emscriptenom, čo znamená, že vo všeobecnosti naprJe potrebné urobiť nejaké zmeny v natívnom kóde. Ako už bolo povedané, veľa aplikácií bude musieť zmeniť iba spôsob, akým definujú svoju hlavnú slučku, a tiež upraviť prácu so súbormi, aby vyhovovali obmedzeniam prehliadača / JavaScriptu.

Existujú aj obmedzenia, ktoré môžu uľahčiť migráciu niektorého kódu – prečítajte si Pokyny pre prenosnosť, aby ste zistili, kde možno budete musieť vynaložiť viac úsilia.

Hlavné nové funkcie Emscripten 3.0

V tejto novej verzii, ktorá je prezentovaná, bola knižnica musl C používaná v emscripten aktualizovaná na verziu 1.2.2 (verzia 1.1.15 bola použitá vo vetve Emscripten 2.x).

Z knižnice parseTools.js bola odstránená časť funkcií, ktoré sa používajú najmä v projekte: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralTypeParts, getStructuralType _IntToHex, IEEEctiley, Compile.Pointertime.

Kým V šablónach shell.html a shell_minimal.html, výstup chybových správ ktoré sa vyskytujú počas operácie emscripten a vydáva ich aplikácia prostredníctvom stderr predvolene sa to zmení tak, že namiesto console.error použije console.warn.

Je tiež zdôraznené, že pridaná možnosť špecifikovať špecifické kódovanie textu používané v názvoch súborov. Kódovanie možno zadať ako príponu pri odovzdávaní názvu súboru, napríklad „a.rsp.utf-8“ alebo „a.rsp.cp1251“).

A nakoniec, ak máte záujem dozvedieť sa viac o Emscripten, môžete si prečítať podrobnosti o projekte v ňom oficiálna web stránka.

Rovnakým spôsobom si môžete prečítať dokumentáciu na webe o tom, ako používať Emscripten, referenčnú stránku, ktorú môžeme odporučiť, je webová stránka pre vývojárov Mozilly: https://developer.mozilla.org.

Tiež je dôležité spomenúť, že 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 WebAssembly a optimalizáciu. Môžete skontrolovať svoj kód zdroj na GitHub.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Za údaje zodpovedá: AB Internet Networks 2008 SL
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.