Dostupan je Emscripten 3.0, C/C++ za WebAssembly kompajler

Objavljeno je izdanje Emscripten 3.0 kompajlera, koji vam omogućava da prevedete kod u C/C++ i drugim jezicima za koje su dostupni frontendovi zasnovani na LLVM-u u univerzalni srednji kod niskog nivoa WebAssembly, za naknadnu integraciju sa JavaScript projektima, pokretanje u web pretraživaču i koristiti u Node.js ili kreirati samostalne višeplatformske aplikacije koje se pokreću koristeći wasm runtime. Šifra projekta se distribuira pod MIT licencom. Kompajler koristi razvoje iz LLVM projekta, a Binaryen biblioteka se koristi za generiranje WebAssembly-a i optimizaciju.

Glavni cilj Emscripten projekta je kreiranje alata koji vam omogućava da izvršavate kod na Webu bez obzira na programski jezik na kojem je kod napisan. Prevedene aplikacije mogu koristiti pozive standardnim C i C++ bibliotekama (libc, libcxx), C++ ekstenzijama, višenitno bazirano na pthreads, POSIX API-je i mnoge multimedijalne biblioteke. API-ji za integraciju sa Web API-jem i JavaScript kodom su dati odvojeno.

Emscripten podržava emitiranje izlaza SDL2 biblioteke putem Canvas-a, a također pruža podršku za OpenGL i EGL putem WebGL-a, što vam omogućava da konvertujete grafičke aplikacije i igre u WebAssembly (na primjer, postoji port za Qt alat i podržava Unreal Engine 4 i Unit game engines, fizički Bullet engine). Pored kompajliranja koda u C/C++, projekti se razvijaju odvojeno kako bi se osiguralo pokretanje interpretatora i virtuelnih mašina u pretraživačima za jezike Lua, C#, Python, Ruby i Perl. Također je moguće primijeniti ne-Clang frontendove na LLVM, dostupne za jezike kao što su Swift, Rust, D i Fortran.

Glavne promjene u Emscripten 3.0:

  • Musl C biblioteka koja se koristi u emscriptenu je ažurirana na verziju 1.2.2 (verzija 2 je korištena u grani Emscripten 1.1.15.x).
  • Dio funkcija koje su se uglavnom koristile u okviru projekta uklonjen je iz biblioteke parseTools.js: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getParctionTucturalTypeStructuralTypeDructural ef, isPossiblyFunctionType, isFunctionType, getReturnType, splitTokenList, _IntToHex, IEEEUnHex , Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • U predlošcima shell.html i shell_minimal.html, izlaz poruka o grešci koje se javljaju tokom rada emscripten-a i koje aplikacija izlazi preko stderr-a se podrazumevano prebacuje da koristi console.warn umjesto console.error.
  • Dodata mogućnost specificiranja specifičnog kodiranja teksta koji se koristi u nazivima datoteka. Kodiranje se može navesti u obliku sufiksa prilikom prosljeđivanja imena datoteke, na primjer, "a.rsp.utf-8" ili "a.rsp.cp1251").

izvor: opennet.ru

Dodajte komentar