Emscripten 6.0 is available, a compiler from C/C++ to WebAssembly.

È stato pubblicato il rilascio della toolkit Emscripten 6.0, che consente di compilare codice in C/C++ e in altri linguaggi per i quali sono disponibili frontend basati su LLVM, in un codice intermedio universale a basso livello chiamato WebAssembly. Il risultato ottenuto può essere utilizzato per l'integrazione con progetti JavaScript, eseguito nel web browser, utilizzato in Node.js o per creare applicazioni multi-piattaforma autonome, eseguite tramite un runtime wasm. Il codice del progetto è distribuito sotto licenza MIT. Il compilatore utilizza sviluppi del progetto LLVM, mentre per la generazione di WebAssembly e l'ottimizzazione viene impiegata la libreria Binaryen.

L'obiettivo principale di Emscripten è dichiarato come la creazione di uno strumento che consenta di eseguire codice nel Web indipendentemente dal linguaggio di programmazione in cui è stato originariamente scritto. Nelle applicazioni compilate possono essere utilizzate chiamate alle librerie standard di C e C++ (libc, libcxx), estensioni C++, multithreading basato su pthreads, API POSIX e molte librerie multimediali. Vengono forniti anche API per l'integrazione con le API Web e il codice JavaScript.

Emscripten supporta la traduzione dell'output della libreria SDL2 attraverso Canvas e implementa anche il supporto per OpenGL e EGL tramite l'API WebGL, permettendo di convertire in WebAssembly applicazioni grafiche e giochi (ad esempio, è disponibile un porting del toolkit Qt, supportando i motori di gioco Unreal Engine e Unity, oltre al motore di simulazione fisica Bullet).

Oltre alla compilazione di codice C/C++, vengono sviluppati progetti separati per eseguire nel browser interpreti per di macchine virtuali linguaggi come Lua, C#, Python, Ruby e Perl. Inoltre, è possibile applicare front-end a LLVM che non siano Clang, ad esempio, front-end per linguaggi come Swift, Rust, D e Fortran.

L'assegnazione del numero di versione 6.0 è legata a modifiche che introducono incompatibilità. Le principali modifiche in Emscripten 6.0:

  • Sono aumentate le versioni minime dei motori browser in cui può essere eseguito il codice generato: Chrome 74 -> 85, Firefox 68 -> 79 e Safari 12.2 -> 14.1. Questa modifica ha permesso di attivare per impostazione predefinita le estensioni WebAssembly per l'importazione e l'esportazione di variabili globali modificabili, nonché un aumento della bitness dei numeri mantenendo il segno e il valore.
  • Durante il caricamento in streaming utilizzando l'operazione Fetch, la dimensione del blocco caricato è ora limitata a 8 MB per prevenire il caricamento in memoria dell'intero contenuto di file di grandi dimensioni.
  • Aggiornate le versioni di musl libc 1.2.6, libpng 1.6.58 e google-closure-compiler 20260429.0.0.
  • Implementato il flag del compilatore «-m64», che è analogo ai flag
    «-sMEMORY64» e «—target=wasm64».
  • Rimosso il campo PThread.runningWorkers dall'oggetto PThread.
  • La funzione pause() ora restituisce 0 anziché EINTR.
  • Sulla piattaforma Windows, invece del file bat (emcc.bat), è stato proposto un file exe (emcc.exe) per avviare Emscripten.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster