Emscripten 3.0, veriga orodij za gradnjo za WebAssembly z uporabo LLVM

Pred kratkim napovedana je bila izdaja nove različice prevajalnika Emscripten 3.0, za katerega je značilno, da omogoča prevajanje kode v C / C ++ in drugih jezikih, za katere so na voljo frontendi, ki temeljijo na LLVM, v nizkonivojski univerzalni vmesni programski opremi WebAssembly.

Glavna funkcija izdelave te kompilacije je njena kasnejša integracija s projekti JavaScript, zagon v spletnem brskalniku, uporaba v Node. Js ali ustvarite samostojne aplikacije za več platform, ki se izvajajo z wasm runtime.

O Emscriptenu

Glavni cilj razvoj projekta Emscripten je ustvariti orodje, ki vam omogoča izvajanje kode na spletu, ne glede na programski jezik, v katerem je napisan.

Prevedene aplikacije lahko uporabljajo standardne klice knjižnic C in C ++ (libc, libcxx), razširitve C ++, večnitnost, ki temelji na pthreads, POSIX API in številne večpredstavnostne knjižnice. API-ji za integracijo s spletnim API-jem in kodo JavaScript so na voljo ločeno.

Napisati podpira pretakanje izhoda knjižnice SDL2 prek platna, zagotavlja pa tudi podporo za OpenGL in EGL prek WebGL, kar vam omogoča pretvorbo grafičnih aplikacij in iger v WebAssembly.

Skoraj vsako prenosno bazo kode C ali C ++ je mogoče prevesti v WebAssembly z uporabo EmscriptenOd visoko zmogljivih iger, ki morajo upodabljati grafiko, predvajati zvoke ter nalagati in obdelovati datoteke, do aplikacijskih okvirjev, kot je Qt. Emscripten je bil že uporabljen za pretvorbo zelo dolgega seznama osnov kod iz resničnega sveta v WebAssembly, vključno s komercialnimi bazami kod, kot sta Unreal Engine 4 in Unity Engine.

Poleg prevajanja kode C / C ++ se projekti razvijajo ločeno, da se zagotovi, da se tolmači in virtualni stroji za Lua, C #, Python, Ruby in Perl zaženejo v brskalnikih. Prav tako je mogoče uporabiti vmesnike, ki niso Clang, za LLVM, ki so na voljo za jezike, kot so Swift, Rust, D in Fortran.

Treba je opozoriti, da obstajajo razlike med izvornim runtime in Emscripten, kar pomeni, da na splošno nprPotrebno je narediti nekaj sprememb v izvorni kodi. Kot rečeno, bodo številne aplikacije morale samo spremeniti način, kako definirajo svojo glavno zanko, in tudi spremeniti svoje ravnanje z datotekami, da se prilagodijo omejitvam brskalnika / JavaScript.

Obstajajo tudi omejitve, ki lahko olajšajo selitev nekatere kode – preberite Smernice za prenosljivost in ugotovite, kje boste morda morali vložiti več truda.

Glavne nove funkcije Emscripten 3.0

V tej novi različici, ki je predstavljena, je bila knjižnica musl C, uporabljena v emscripten, posodobljena na različico 1.2.2 (različica 1.1.15 je bila uporabljena v veji Emscripten 2.x).

Iz knjižnice parseTools.js je bil odstranjen del funkcij, ki se večinoma uporabljajo v projektu: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralTypeParts, getStructuralType _IntToHex, CompileTEYpe, CompileTEYpe, CompileType.

Medtem ko je V predlogah shell.html in shell_minimal.html izhod sporočil o napakah ki se pojavijo med operacijo emscripten in jih izda aplikacija prek stderr privzeto je spremenjeno tako, da namesto console.error uporablja console.warn.

Poudarjeno je tudi, da dodana možnost določanja posebnega kodiranja besedila, uporabljenega v imenih datotek. Kodiranje lahko podate kot pripono, ko posredujete ime datoteke, na primer "a.rsp.utf-8" ali "a.rsp.cp1251").

Končno, če vas zanima več o Emscriptenu, si lahko ogledate podrobnosti projekta v njem uradna spletna stran.

Na enak način si lahko ogledate spletno dokumentacijo o tem, kako uporabljati Emscripten, referenčno spletno mesto, ki ga lahko priporočamo, je spletno mesto za razvijalce Mozilla: https://developer.mozilla.org.

Prav tako je pomembno omeniti, da se projektna koda distribuira pod licenco MIT. Prevajalnik uporablja razvoj iz projekta LLVM, knjižnica Binaryen pa se uporablja za generiranje WebAssembly in optimizacijo. Lahko preverite svojo kodo vir na GitHubu.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Odgovoren za podatke: AB Internet Networks 2008 SL
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.