È 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 il relativo API, consentendo 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 vari linguaggi di programmazione. Grazie all'implementazione di JIT per WebAssembly, è possibile raggiungere livelli di prestazioni vicini al 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, attraverso l'esecuzione nel browser di codice scritto in linguaggi compilabili come C/C++.

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

Il W3C ha pubblicato tre specifiche preliminari di WebAssembly 2.0:

  • WebAssembly Core — descrive una macchina virtuale a basso livello per l'esecuzione del codice intermedio di WebAssembly. Le risorse legate a WebAssembly sono fornite nel formato «.wasm», simile ai file «.class» in Java e contenenti dati statici e segmenti di codice per lavorare con tali dati.
  • WebAssembly JavaScript Interface — fornisce un'API per l'integrazione con JavaScript. Consente di ottenere valori e passare parametri alle funzioni di WebAssembly. L'esecuzione di WebAssembly segue il modello di sicurezza di JavaScript e tutto l'interazione con il sistema principale avviene in modo simile all'esecuzione di codice JavaScript.
  • WebAssembly Web API — definisce un'interfaccia di programmazione basata sul meccanismo Promise per la richiesta e l'esecuzione delle risorse «.wasm». Il formato delle risorse WebAssembly è ottimizzato per l'avvio dell'esecuzione senza attendere il caricamento completo del file, migliorando così la reattività delle web app.

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 di eseguire azioni su più valori numerici contemporaneamente (SIMD, single instruction multiple data).
  • Possibilità di importare ed esportare variabili globali modificabili (mutable), consentendo l'applicazione di legami globali per valori come puntatori allo stack in C++.
  • Nuove istruzioni per la conversione di tipo float in int, che invece 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 di numeri interi (aumento della larghezza del numero mantenendo il segno e il valore).
  • Supporto per restituire più valori attraverso blocchi e funzioni (in aggiunta al passaggio di più parametri alle 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 ed externref) e le istruzioni correlate (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/pieno delle tabelle in modalità batch (table.copy, table.init e 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