Emscripten 3.0, en byggverktygskedja för WebAssembly med LLVM

nyligen lanseringen av den nya versionen av Emscripten 3.0-kompilatorn tillkännagavs, som kännetecknas av att tillåta kod att kompileras i C / C ++ och andra språk för vilka LLVM-baserade gränssnitt är tillgängliga, i en lågnivå universell middleware WebAssembly.

Huvudfunktionen för denna kompilering är för dess efterföljande integration med JavaScript-projekt, körs i en webbläsare, använd i Node. Js eller skapa fristående applikationer över flera plattformar som körs med wasm-runtime.

Om Emscripten

Huvudmålet utveckling av Emscripten-projektet är att skapa ett verktyg som låter dig köra kod på webben, oavsett vilket programmeringsspråk det är skrivet på.

Kompilerade applikationer kan använda vanliga C- och C++-biblioteksanrop (libc, libcxx), C++-tillägg, pthreads-baserad multithreading, POSIX API och många multimediabibliotek. API:er för integration med webb-API och JavaScript-kod tillhandahålls separat.

Emscripten stöder strömmande SDL2-biblioteksutdata via Canvas, och ger även stöd för OpenGL och EGL genom WebGL, så att du kan konvertera grafikapplikationer och spel till WebAssembly.

Praktiskt taget vilken bärbar C- eller C++-kodbas som helst kan kompileras till WebAssembly med EmscriptenFrån högpresterande spel som behöver rendera grafik, spela upp ljud och ladda och bearbeta filer, till applikationsramverk som Qt. Emscripten har redan använts för att konvertera en mycket lång lista av verkliga kodbaser till WebAssembly, inklusive kommersiella kodbaser som Unreal Engine 4 och Unity Engine.

Förutom att kompilera C/C++-koden, utvecklas projekt separat för att säkerställa att tolkar och virtuella maskiner för Lua, C #, Python, Ruby och Perl startar i webbläsarna. Det är också möjligt att tillämpa icke-Clang-gränssnitt på LLVM tillgängliga för språk som Swift, Rust, D och Fortran.

Det bör noteras att det finns skillnader mellan native runtime och Emscripten, vilket innebär att i allmänhet t.exDet är nödvändigt att göra några ändringar i den ursprungliga koden. Som sagt, många applikationer behöver bara ändra hur de definierar sin huvudslinga och även modifiera sin filhantering för att tillgodose webbläsarens / JavaScript-begränsningar.

Det finns också begränsningar som kan göra viss kod lättare att migrera - läs riktlinjerna för portabilitet för att avgöra var du kan behöva lägga mer ansträngning.

De viktigaste nya funktionerna i Emscripten 3.0

I denna nya version som presenteras har musl C-biblioteket som används i emscripten uppdaterats till version 1.2.2 (version 1.1.15 användes i Emscripten 2.x-grenen).

Från parseTools.js-biblioteket togs en del av funktionerna bort, som huvudsakligen används i projektet: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralTypeParts, getStructuralType _IntToHex, IEEEUnHexTyp,CompiletimeTyp,CompiletimeTyp,CompiletimeTyp,Kompiltid.

Medan i mallarna shell.html och shell_minimal.html, resultatet av felmeddelandena som inträffar under emscripten-operationen och utfärdas av applikationen via stderr den ändras som standard till att använda console.warn istället för console.error.

Det framhävs också att lagt till möjligheten att ange en specifik textkodning som används i filnamn. Kodning kan anges som ett suffix när filnamnet skickas, till exempel "a.rsp.utf-8" eller "a.rsp.cp1251").

Slutligen, om du är intresserad av att veta mer om det om Emscripten, kan du konsultera detaljerna om projektet i dess officiell hemsida.

Och på samma sätt kan du konsultera dokumentation på webben om hur du använder Emscripten, en referenssida som vi kan rekommendera är Mozillas utvecklarwebbplats: https://developer.mozilla.org.

Det är också viktigt att nämna att projektkoden distribueras under MIT-licensen. Kompilatorn använder utvecklingen från LLVM-projektet och Binaryen-biblioteket används för att generera WebAssembly och optimering. Du kan kontrollera din kod källa på GitHub.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.