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

nedavno najavljeno je izlazak nove verzije kompajlera Emscripten 3.0, koji je karakteriziran time što omogućuje prevođenje koda u C / C ++ i drugim jezicima za koje su dostupni frontendi zasnovani na LLVM-u, u univerzalnom međuverskom WebAssembly niske razine.

Glavna funkcija ove kompilacije je njena naknadna integracija s JavaScript projektima, izvođenje u web pregledniku i korištenje u Nodeu. Js ili kreirajte samostalne aplikacije na više platformi koje se pokreću s wasm runtime.

O Emscriptenu

Glavni cilj razvoj projekta Emscripten je stvoriti alat koji vam omogućuje pokretanje koda na webu, bez obzira na programski jezik na kojem je napisan.

Prevedene aplikacije mogu koristiti standardne C i C ++ pozive knjižnice (libc, libcxx), proširenja C ++, višenitnost temeljena na pthreads, POSIX API i mnoge multimedijske biblioteke. API-ji za integraciju s web API-jem i JavaScript kodom daju se zasebno.

Prijavite se podržava strujanje izlaza SDL2 biblioteke putem platna, a također pruža podršku za OpenGL i EGL putem WebGL-a, omogućujući vam pretvaranje grafičkih aplikacija i igara u WebAssembly.

Gotovo svaka prijenosna baza koda C ili C ++ može se prevesti u WebAssembly pomoću EmscriptenaOd igara visokih performansi koje trebaju renderirati grafiku, reproducirati zvukove te učitavati i obraditi datoteke, do aplikacijskih okvira kao što je Qt. Emscripten je već korišten za pretvaranje vrlo dugog popisa baza koda iz stvarnog svijeta u WebAssembly, uključujući komercijalne baze koda kao što su Unreal Engine 4 i Unity Engine.

Osim sastavljanja koda C / C ++, projekti se razvijaju zasebno kako bi se osiguralo da se tumači i virtualni strojevi za Lua, C #, Python, Ruby i Perl pokreću u preglednicima. Također je moguće primijeniti ne-Clang sučelja na LLVM dostupna za jezike kao što su Swift, Rust, D i Fortran.

Treba napomenuti da 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 će aplikacije samo trebati promijeniti način na koji definiraju svoju glavnu petlju i modificirati rukovanje datotekama kako bi se prilagodile ograničenjima preglednika/JavaSkripta.

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

Glavne nove značajke Emscriptena 3.0

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

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

Dok U predlošcima shell.html i shell_minimal.html, izlaz poruka o pogrešci koji se javljaju tijekom emscripten operacije i koje aplikacija izdaje putem stderr-a mijenja se prema zadanim postavkama da koristi console.warn umjesto console.error.

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

Konačno, ako ste zainteresirani za saznanje više o Emscriptenu, možete pogledati detalje projekta u njegovom službena 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 web-mjesto Mozilla razvojnog programera: https://developer.mozilla.org.

Također, važno je napomenuti da se projektni kod distribuira pod MIT licencom. Prevoditelj 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 svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.