Es va donar a conèixer l'esborrany de l'estàndard WebAssembly 2.0 

El W3C va donar a conèixer fa poc mitjançant una publicació, un esborrany d'una especificació nova que estandarditza el codi de preparació de WebAssembly 2.0 i l'API associada per permetre la creació daplicació dalt rendiment que són portàtils entre navegadors i plataformes de maquinari.

Per als que desconeixen de WebAssembly, han de saber que aquest proporciona un middleware genèric, de baix nivell i independent del navegador, per executar aplicacions compilades a partir de diversos llenguatges de programació. Gràcies a l'ús de JIT per a WebAssembly, podeu aconseguir un nivell de rendiment proper al codi nadiu.

Sobre WebAssembly

WebAssembly es pot utilitzar per realitzar tasques d'alt rendiment al navegador, com a codificació de vídeo, processament d'àudio, manipulació de gràfics i 3D, desenvolupament de jocs, operacions criptogràfiques i càlculs matemàtics, mitjançant l'execució de codi escrit en llenguatges compilats com a C/ C++.

Entre les tasques principals de WebAssembly hi ha la provisió de portabilitat, previsibilitat de comportament i identitat d'execució de codi en diferents plataformes. Recentment, WebAssembly també s'ha promocionat com una plataforma universal per a l'execució segura de codi a qualsevol infraestructura, sistema operatiu i dispositiu, sense limitar-se als navegadors.

Sobre l'esborrany de WebAssembly 2.0

Per la part de les modificacions que s'han realitzat des de WebAssembly estan les propostes acabades per a WebAssembly 2.0 es troben SIMD d'amplada fixa, operacions de memòria massiva, tipus de referència, compatibilitat amb JavaScript de BigInt per WebAssembly i64, compatibilitat amb múltiples valors de retorn i importació/exportació de variables globals mutables.

El W3C ha publicat tres esborranys d'especificacions de WebAssembly 2.0:

  1. WebAssembly Core: descriu una màquina virtual de baix nivell per executar codi intermedi de WebAssembly. Els recursos relacionats amb WebAssembly vénen en format .wasm, similar als fitxers Java .class, que contenen dades estàtiques i segments de codi per treballar amb aquestes dades.
  2. Interfície JavaScript de WebAssembly: proporciona una API per a la integració amb JavaScript. Us permet obtenir valors i passar paràmetres a les funcions de WebAssembly. L'execució de WebAssembly segueix el model de seguretat de JavaScript i tota la interacció amb el sistema principal es fa de manera similar a l'execució del codi JavaScript.
  3. WebAssembly Web API: defineix una API basada en el mecanisme Promise per sol·licitar i executar recursos «.wasm». El format de recursos de WebAssembly està optimitzat per iniciar l'execució sense esperar que el fitxer es descarregui del tot, cosa que millora la capacitat de resposta de les aplicacions web.

Diferències entre WebAssembly i WebAssembly 2.0

A més, cal ressaltar que hi ha alguns canvis importants en WebAssembly 2.0 en comparació amb la primera versió de l'estàndard:

  • Compatibilitat amb el tipus de vector v128 i les instruccions de vector relacionades que us permeten realitzar operacions en múltiples valors numèrics en paral·lel (SIMD, instrucció única, dades múltiples).
  • Capacitat per importar i exportar variables globals mutables, el que permet l'enllaç global per a valors com a punters de pila a C++.
  • Noves instruccions per convertir float a int, que en lloc de generar una excepció en el desbordament de resultats, retorna el valor mínim o màxim possible (requerit per a SIMD).
  • Instruccions per expandir el signe de números sencers (augmentar la profunditat de bits d'un número mantenint el signe i el valor).
  • Suport per tornar múltiples valors per blocs i funcions (a més de passar múltiples paràmetres a funcions).
  • Implementar les funcions de JavaScript BigInt64Array i BigUint64Array per convertir entre el tipus de JavaScript BigInt i la representació WebAssembly de sencers de 64 bits.
  • Suport per a tipus de referència (funcref i externref) i les seves instruccions associades (select, ref.null, ref.func i ref.is_null).
  • Instruccions memory.copy, memory.fill, memory.init i data.drop per copiar dades entre regions de memòria i esborrar regions de memòria.
  • Instruccions per a accés directe i modificació de taules (table.set, table.get, table.size, table.grow).
  • Capacitat per crear, importar i exportar múltiples taules en un mòdul. Funcions per copiar/omplir taules en mode per lots (table.copy, table.init i elem.drop).

Finalment si estàs interessat en poder conèixer més a l'respecte, pots consultar els detalls en el següent enllaç.


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ó.