Emscripten 3.0, egy LLVM-et használó WebAssembly összeállítási eszközlánca

nemrég bejelentették az Emscripten 3.0 fordító új verziójának megjelenését, amelyre jellemző, hogy lehetővé teszi a kód lefordítását C / C ++ és más nyelveken, amelyekhez LLVM-alapú frontendek állnak rendelkezésre, alacsony szintű univerzális köztes WebAssembly-ben.

Ennek az összeállításnak a fő funkciója a JavaScript-projektekkel való későbbi integráció, webböngészőben futtatva, Node-ban történő használat mellett. Js vagy hozzon létre többplatformos önálló alkalmazásokat, amelyek a wasm futtatókörnyezetével futnak.

Az Emscriptenről

A fő cél az Emscripten projekt fejlesztése egy olyan eszköz létrehozása, amely lehetővé teszi kód futtatását a weben, függetlenül attól, hogy milyen programozási nyelven íródott.

A lefordított alkalmazások szabványos C és C ++ könyvtárhívásokat használhatnak (libc, libcxx), C ++ kiterjesztések, pthreads alapú többszálú kezelés, POSIX API és sok multimédiás könyvtár. A webes API-val és a JavaScript-kóddal való integrációhoz szükséges API-k külön állnak rendelkezésre.

Regisztrálj támogatja az SDL2 könyvtár kimenetének Canvason keresztüli streamelését, valamint OpenGL- és EGL-támogatást is biztosít a WebGL-en keresztül, lehetővé téve a grafikus alkalmazások és játékok WebAssembly-re való konvertálását.

Gyakorlatilag bármilyen hordozható C vagy C ++ kódbázis lefordítható WebAssembly-be az Emscripten segítségévelA nagy teljesítményű játékoktól, amelyeknek grafikát kell renderelni, hangokat kell lejátszani, fájlokat betölteni és feldolgozni, az olyan alkalmazáskeretrendszerekig, mint a Qt. Az Emscripten-t már használták a valós kódbázisok nagyon hosszú listájának WebAssembly-re való konvertálására, beleértve a kereskedelmi kódbázisokat, például az Unreal Engine 4-et és a Unity Engine-t.

A C / C ++ kód fordítása mellett külön projekteket fejlesztenek ki annak biztosítására, hogy a Lua, C #, Python, Ruby és Perl értelmezői és virtuális gépei elinduljanak a böngészőkben. Lehetőség van nem Clang interfészek alkalmazására az LLVM-hez is, amelyek olyan nyelveken érhetők el, mint a Swift, Rust, D és Fortran.

Meg kell jegyezni, hogy különbségek vannak a natív futtatókörnyezet és az Emscripten között, ami azt jelenti, hogy általában plNéhány változtatást kell végrehajtani a natív kódon. Ennek ellenére sok alkalmazásnak csak a fő hurok meghatározásának módját kell megváltoztatnia, és módosítania kell a fájlkezelést is, hogy megfeleljen a böngésző/JavaScript korlátozásoknak.

Vannak olyan korlátozások is, amelyek megkönnyíthetik egyes kódok áttelepítését – olvassa el a hordozhatósági irányelveket, hogy meghatározza, hol kell több erőfeszítést költenie.

Az Emscripten 3.0 fő újdonságai

Ebben a bemutatott új verzióban az emscriptenben használt musl C könyvtár az 1.2.2-es verzióra frissült (az Emscripten 1.1.15.x ágban az 2-ös verziót használták).

A parseTools.js könyvtárból eltávolították a projektben főként használt függvények egy részét: RemovePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralTypeParts, getStructuralype,ComppeypeTpiletipe,CommentypeTpiletipe,CommentypeTpiletipe _IntTo.

míg A shell.html és shell_minimal.html sablonokban a hibaüzenetek kimenete amelyek az emscripten művelet során fordulnak elő, és az alkalmazás által kiadott stderr-en keresztül alapértelmezés szerint a console.warn használatára módosul a console.error helyett.

Azt is kiemelik hozzáadta a fájlnevekben használt konkrét szövegkódolás megadásának lehetőségét. A kódolás megadható utótagként a fájlnév átadásakor, például "a.rsp.utf-8" vagy "a.rsp.cp1251").

Végül, ha többet szeretne megtudni az Emscriptenről, tekintse meg a projekt részleteit abban hivatalos honlapján.

Ugyanígy megtekintheti a weben található dokumentációt az Emscripten használatáról, egy referenciaoldal, amelyet ajánlhatunk a Mozilla fejlesztői webhelye: https://developer.mozilla.org.

Azt is fontos megemlíteni, hogy a projekt kódja az MIT licenc alatt kerül terjesztésre. A fordító az LLVM projekt fejlesztéseit használja, a Binaryen könyvtár pedig a WebAssembly generálására és az optimalizálásra. Ellenőrizheti a kódját forrás a GitHubon.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: AB Internet Networks 2008 SL
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.