È disponibile una versione preliminare dello standard WebAssembly 2.0

Il consorzio W3C ha pubblicato una bozza della nuova specifica che standardizza il codice intermedio WebAssembly 2.0 e l'API associata, permettendo la creazione di applicazioni ad alte prestazioni, portabili tra browser e piattaforme hardware. WebAssembly fornisce un codice intermedio universale a basso livello, indipendente dal browser, per l'esecuzione di applicazioni compilate da diversi linguaggi di programmazione. Grazie all'uso del JIT, WebAssembly può raggiungere livelli di prestazioni vicini a quelli del codice nativo.

La tecnologia WebAssembly può essere utilizzata per eseguire nel browser compiti che richiedono elevate prestazioni, come la codifica video, l'elaborazione audio, la manipolazione grafica e 3D, lo sviluppo di giochi, operazioni crittografiche e calcoli matematici, organizzando l'esecuzione nel browser di codice scritto in linguaggi compilabili come C/C++.

Tra i principali obiettivi di WebAssembly ci sono la garantire portabilità, prevedibilità nel comportamento e identità dell'esecuzione del codice su diverse piattaforme. Negli ultimi tempi, WebAssembly è stato promosso anche come piattaforma universale per l'esecuzione sicura di codice in qualsiasi infrastruttura, sistema operativo e dispositivo, senza limitarsi ai browser.

Il W3C ha pubblicato tre bozze preliminari delle specifiche WebAssembly 2.0:

  • WebAssembly Core — descrive una macchina virtuale a basso livello per l'esecuzione di codice intermedio WebAssembly. Le risorse legate a WebAssembly vengono fornite nel formato '.wasm', simile ai file '.class' in Java e contenente dati statici e segmenti di codice per gestire questi dati.
  • WebAssembly JavaScript Interface — fornisce un'API per l'integrazione con JavaScript. Consente di ottenere valori e passare parametri alle funzioni WebAssembly. L'esecuzione di WebAssembly segue il modello di sicurezza di JavaScript e tutto l'interazione con il sistema principale avviene in analogia all'esecuzione di codice JavaScript.
  • WebAssembly Web API — definisce un'interfaccia programmabile basata sul meccanismo Promise per richiedere ed eseguire risorse '.wasm'. Il formato delle risorse WebAssembly è ottimizzato per un avvio rapido dell'esecuzione, senza attendere il caricamento completo del file, il che aumenta la reattività delle applicazioni web.

Le principali modifiche in WebAssembly 2.0, rispetto alla prima versione dello standard:

  • Supporto per il tipo vettoriale v128 e le relative istruzioni vettoriali, che consentono l'esecuzione parallela di operazioni su più valori numerici (SIMD, single instruction multiple data).
  • Possibilità di importare ed esportare variabili globali modificabili (mutable), che consentono di applicare il binding globale a valori come puntatori nello stack in C++.
  • Nuove istruzioni per la conversione del tipo float in int, che al posto di generare un'eccezione in caso di overflow del risultato restituiscono il valore minimo o massimo possibile (necessario per SIMD).
  • Istruzioni per l'estensione del segno dei numeri interi (aumento della dimensione del numero mantenendo il segno e il valore).
  • Supporto per il ritorno di più valori da blocchi e funzioni (in aggiunta al passaggio di più parametri nelle funzioni).
  • Implementazione delle funzioni JavaScript BigInt64Array e BigUint64Array per la conversione tra il tipo BigInt di JavaScript e la rappresentazione di numeri interi a 64 bit in WebAssembly.
  • Supporto per i tipi di riferimento (funcref e externref) e le relative istruzioni (select, ref.null, ref.func e ref.is_null).
  • Istruzioni memory.copy, memory.fill, memory.init e data.drop per copiare dati tra aree di memoria e pulire regioni di memoria.
  • Istruzioni per l'accesso diretto e la modifica delle tabelle (table.set, table.get, table.size, table.grow). Possibilità di creare, importare ed esportare più tabelle in un unico modulo. Funzioni di copia/riempimento delle tabelle in modalità batch (table.copy, table.init ed elem.drop).

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