Emscripten 3.0, una cadena d'eines de compilació per a WebAssembly utilitzant LLVM

fa poc es va donar a conèixer el llançament de la nova versió del compilador Emscripten 3.0, el qual es caracteritza per permetre compilar codi a C/C++ i altres llenguatges per als quals estan disponibles frontends basats en LLVM, en un WebAssembly de middleware universal de baix nivell.

La principal funció de realitzar aquesta compilació és per a la seva integració posterior amb Projectes de JavaScript, executar en un navegador web, utilitzar en Node. Js o crear aplicacions independents multiplataforma que sexecuten amb el temps dexecució wasm.

Sobre Emscripten

El principal objectiu de desenvolupament del projecte Emscripten és crear una eina que us permeti executar codi a la Web, independentment del llenguatge de programació en què estigui escrit.

Les aplicacions compilades poden utilitzar trucades a biblioteques estàndard de C i C++ (libc, libcxx), extensions de C++, subprocessos múltiples basats en pthreads, API POSIX i moltes biblioteques multimèdia. Les API per a la integració amb l'API web i el codi JavaScript es proporcionen per separat.

Emscriptin admet la transmissió de la sortida de la biblioteca SDL2 a través de Canvas, i també proporciona compatibilitat amb OpenGL i EGL a través de WebGL, cosa que permet convertir aplicacions gràfiques i jocs a WebAssembly.

Pràcticament qualsevol base de codi C o C++ portàtil es pot compilar a WebAssembly usant Emscripten, des de jocs d'alt rendiment que necessiten renderitzar gràfics, reproduir sons i carregar i processar fitxers, fins a marcs d'aplicacions com Qt. Emscripten ja s'ha fet servir per convertir una llista molt llarga de bases de codi del món real a WebAssembly, incloses bases de codi comercials com Unreal Engine 4 i Unity Engine.

A més de compilar el codi C/C++, els projectes es desenvolupen per separat per garantir que els intèrprets i les màquines virtuals per a Lua, C#, Python, Ruby i Perl s'iniciïn als navegadors. També és possible aplicar interfícies que no siguin de Clang a LLVM disponibles per a idiomes com Swift, Rust, D i Fortran.

Cal destacar que hi ha diferències entre l'entorn d'execució nadiu i Emscripten, el que significa que, en general, ical fer alguns canvis en el codi nadiu. Dit això, moltes aplicacions només necessitaran canviar la manera com defineixen el bucle principal i també modificar el seu maneig de fitxers per adaptar-se a les limitacions del navegador / JavaScript.

També hi ha limitacions que poden fer que alguns codis siguin més fàcils de migrar: llegiu les Pautes de portabilitat per determinar on potser haureu de dedicar més esforç.

Principals novetats d'Emscripten 3.0

En aquesta nova versió que es presenta, la biblioteca musl C utilitzada en emscripten s'ha actualitzat a la versió 1.2.2 (la versió 1.1.15 es va utilitzar a la branca Emscripten 2.x).

De la biblioteca parseTools.js es va eliminar una part de les funcions, que s'utilitzen principalment al projecte: removePointing, apuntantLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralTypeParts, getStructuralType _IntToHex, IEEEUnHex, Compile.

Mentres que a les plantilles shell.html i shell_minimal.html, la sortida dels missatges d'error que ocorren durant l'operació d'emscripten i emesos per l'aplicació a través de stderr es canvia per defecte per utilitzar console.warn en lloc de console.error.

També es destaca que es va afegir la capacitat d'especificar una codificació de text específica utilitzada als noms dels fitxers. La codificació es pot especificar en forma de sufix en passar el nom del fitxer, per exemple, «a.rsp.utf-8» o «a.rsp.cp1251»).

Finalment si estàs interessat a conèixer més sobre això sobre Emscripten, pots consultar els detalls del projecte en el seu pagina web oficial.

I de la mateixa manera, pots consultar documentació a la web de com utilitzar Emscripten, un lloc de referència que et podem recomanar és el lloc web per a desenvolupadors de Mozilla: https://developer.mozilla.org.

A més, és important esmentar que el codi del projecte es distribueix sota la llicència MIT. El compilador fa servir els desenvolupaments del projecte LLVM i la biblioteca Binaryen es fa servir per generar WebAssembly i optimització. Pots consultar el codi font a GitHub.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.