Emscripten 3.0, lanac alata za izradu WebAssembly koristeći LLVM

Nedavno najavljeno je izdavanje nove verzije Emscripten 3.0 kompajlera, koju karakteriše omogućavanje kompajliranja koda u C / C ++ i drugim jezicima za koje su dostupni frontendovi zasnovani na LLVM-u, u univerzalnom međuverskom WebAssembly niskom nivou.

Glavna funkcija ove kompilacije je njena naknadna integracija sa JavaScript projektima, pokretanje u web pretraživaču, korištenje u Nodeu. Js ili kreirajte samostalne aplikacije na više platformi koje se pokreću sa wasm runtime-om.

O Emscriptenu

Glavni cilj razvoj projekta Emscripten je kreiranje alata koji vam omogućava pokretanje koda na webu, bez obzira na programski jezik na kojem je napisan.

Prevedene aplikacije mogu koristiti standardne C i C ++ pozive biblioteke (libc, libcxx), C ++ ekstenzije, višenitnost zasnovano na pthreads, POSIX API i mnoge multimedijalne biblioteke. API-ji za integraciju sa web API-jem i JavaScript kodom su dati odvojeno.

Prijaviti se podržava streaming izlaza SDL2 biblioteke preko Canvas-a, a također pruža podršku za OpenGL i EGL kroz WebGL, omogućavajući vam da konvertujete grafičke aplikacije i igre u WebAssembly.

Gotovo svaka prenosiva C ili C ++ baza koda može se prevesti u WebAssembly koristeći EmscriptenOd igara visokih performansi koje trebaju renderirati grafiku, puštati zvukove i učitavati i obraditi datoteke, do okvira aplikacija kao što je Qt. Emscripten je već korišćen za pretvaranje veoma dugačke liste baza koda iz stvarnog sveta u WebAssembly, uključujući komercijalne baze koda kao što su Unreal Engine 4 i Unity Engine.

Pored kompajliranja C / C ++ koda, projekti se razvijaju odvojeno kako bi se osiguralo da se tumači i virtuelne mašine za Lua, C #, Python, Ruby i Perl pokreću u pretraživačima. Također je moguće primijeniti ne-Clang sučelje na LLVM dostupno za jezike kao što su Swift, Rust, D i Fortran.

Treba istaći to postoje razlike između izvornog vremena izvođenja i Emscriptena, što znači da, općenito, ePotrebno je napraviti neke promjene u izvornom kodu. Imajući to u vidu, mnoge aplikacije će samo morati da promene način na koji definišu svoju glavnu petlju i da modifikuju rukovanje datotekama kako bi se prilagodile ograničenjima pretraživača/JavaSkripta.

Postoje i ograničenja koja mogu olakšati migraciju nekog koda - pročitajte Smjernice za prenosivost da odredite gdje ćete možda morati uložiti više truda.

Glavne nove karakteristike Emscriptena 3.0

U ovoj novoj verziji koja je predstavljena, biblioteka musl C koja se koristi u emscripten-u je ažurirana na verziju 1.2.2 (verzija 1.1.15 je korištena u grani Emscripten 2.x).

Iz biblioteke parseTools.js je uklonjen dio funkcija koje se uglavnom koriste u projektu: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralTypeParts, getStructuralType _IntToHex, IEEEUTEYpe, CompileTEYpe,Comp.

Dok U predlošcima shell.html i shell_minimal.html, izlaz poruka o grešci koji se javljaju tokom emscripten operacije i koje aplikacija izdaje putem stderr-a po defaultu je promijenjeno da koristi console.warn umjesto console.error.

Takođe je istaknuto da dodala je mogućnost specificiranja specifičnog kodiranja teksta koji se koristi u nazivima datoteka. Kodiranje se može navesti kao sufiks prilikom prosljeđivanja imena datoteke, na primjer "a.rsp.utf-8" ili "a.rsp.cp1251").

Konačno, ako ste zainteresovani da saznate više o Emscriptenu, možete pogledati detalje projekta u njemu službena web stranica.

I na isti način, možete pogledati dokumentaciju na webu o tome kako koristiti Emscripten, referentnu stranicu koju možemo preporučiti je Mozilla developer website: https://developer.mozilla.org.

Također, važno je napomenuti da se projektni kod distribuira pod MIT licencom. Kompajler koristi razvoje iz LLVM projekta, a Binaryen biblioteka se koristi za generiranje WebAssembly-a i optimizaciju. Možete provjeriti svoj kod izvor na GitHubu.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.