Emscripten 3.0, una toolchain di build per WebAssembly utilizzando LLVM

recentemente è stato annunciato il rilascio della nuova versione del compilatore Emscripten 3.0, che si caratterizza per consentire la compilazione del codice in C/C++ e altri linguaggi per i quali sono disponibili frontend basati su LLVM, in un WebAssembly middleware universale di basso livello.

La funzione principale di questa compilation è per la sua successiva integrazione con JavaScript Projects, eseguita in un browser Web, utilizzata in Node. Js o creare applicazioni autonome multipiattaforma che vengono eseguite con il runtime wasm.

Informazioni su Emscripten

L'obiettivo principale sviluppo del progetto Emscripten è creare uno strumento che ti permetta di eseguire codice sul Web, indipendentemente dal linguaggio di programmazione in cui è scritto.

Le applicazioni compilate possono utilizzare chiamate di libreria C e C++ standard (libc, libcxx), estensioni C++, multithreading basato su pthread, API POSIX e molte librerie multimediali. Le API per l'integrazione con l'API Web e il codice JavaScript sono fornite separatamente.

Scritte supporta lo streaming dell'output della libreria SDL2 tramite Canvase fornisce anche il supporto OpenGL ed EGL tramite WebGL, consentendo di convertire applicazioni grafiche e giochi in WebAssembly.

Praticamente qualsiasi base di codice portatile C o C ++ può essere compilata in WebAssembly utilizzando EmscriptenDai giochi ad alte prestazioni che devono eseguire il rendering di grafica, riprodurre suoni e caricare ed elaborare file, a framework di applicazioni come Qt. Emscripten è già stato utilizzato per convertire un elenco molto lungo di basi di codice del mondo reale in WebAssembly, comprese basi di codice commerciali come Unreal Engine 4 e Unity Engine.

Oltre a compilare codice C/C++, i progetti vengono sviluppati separatamente per garantire che interpreti e macchine virtuali per Lua, C#, Python, Ruby e Perl vengano avviati nei browser. È anche possibile applicare interfacce non Clang a LLVM disponibili per linguaggi come Swift, Rust, D e Fortran.

In particolare ci sono differenze tra runtime nativo ed Emscripten, il che significa che, in generale, eÈ necessario apportare alcune modifiche al codice nativo. Detto questo, molte applicazioni dovranno solo cambiare il modo in cui definiscono il loro ciclo principale e anche modificare la loro gestione dei file per adattarsi alle limitazioni del browser/JavaScript.

Esistono anche limitazioni che possono rendere più facile la migrazione di parte del codice: leggi le Linee guida sulla portabilità per determinare dove potresti dover dedicare più impegno.

Principali nuove funzionalità di Emscripten 3.0

In questa nuova versione che viene presentata, la libreria musl C usata in emscripten è stata aggiornata alla versione 1.2.2 (la versione 1.1.15 era usata nel ramo Emscripten 2.x).

Dalla libreria parseTools.js è stata rimossa una parte delle funzioni, che sono principalmente utilizzate nel progetto: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralTypeParts, getStructuralType _IntToHex, IEEEUnHex, Compiletime.isPointerType, .EStructileType, .EStructileType

Mentre Nei modelli shell.html e shell_minimal.html, l'output dei messaggi di errore che si verificano durante l'operazione emscripten e rilasciati dall'applicazione tramite stderr è cambiato per impostazione predefinita per usare console.warn invece di console.error.

Si evidenzia anche questo aggiunta la possibilità di specificare una codifica di testo specifica utilizzata nei nomi dei file. La codifica può essere specificata come suffisso quando si passa il nome del file, ad esempio "a.rsp.utf-8" o "a.rsp.cp1251").

Infine, se sei interessato a saperne di più su Emscripten, puoi consultare i dettagli del progetto nella sua Sito ufficiale.

E allo stesso modo, puoi consultare la documentazione sul web su come usare Emscripten, un sito di riferimento che possiamo consigliare è il sito per sviluppatori Mozilla: https://developer.mozilla.org.

Inoltre, è importante ricordare che il codice del progetto è distribuito sotto licenza MIT. Il compilatore utilizza gli sviluppi del progetto LLVM e la libreria Binaryen viene utilizzata per generare WebAssembly e ottimizzazione. Puoi controllare il tuo codice sorgente su GitHub.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.