Utkast til WebAssembly 2.0-standard utgitt 

W3C avduket Nylig gjennom et innlegg et utkast til en ny spesifikasjon som standardiserer forberedelseskoden til WebAssembly 2.0 og tilhørende API for å muliggjøre opprettelsen av høyytelsesapplikasjoner som er bærbare på tvers av nettlesere og maskinvareplattformer.

For de som er nye til WebAssembly, bør du vite det dette gir en generisk mellomvare, lavt nivå og nettleseruavhengig, for å kjøre kompilerte applikasjoner fra ulike programmeringsspråk. Ved å bruke JIT for WebAssembly kan du oppnå et ytelsesnivå som er nær native kode.

Om WebAssembly

WebAssembly kan brukes til å utføre oppgaver med høy ytelse i nettleseren, slik som videokoding, lydbehandling, 3D- og grafikkmanipulering, spillutvikling, kryptografiske operasjoner og matematiske beregninger, ved å utføre kode skrevet på kompilerte språk som C/C++.

Blant hovedoppgavene til WebAssembly er å sørge for portabilitet, forutsigbarhet for atferd og identitet for kjøring av kode på forskjellige plattformer. Nylig har WebAssembly også blitt promotert som en universell plattform for sikker kjøring av kode på enhver infrastruktur, operativsystem og enhet, ikke begrenset til nettlesere.

Om WebAssembly 2.0-utkastet

På den delen av endringene som er gjort siden WebAssembly er de ferdige forslagene for WebAssembly 2.0 SIMD med fast bredde, masseminneoperasjoner, referansetyper, JavaScript BigInt-støtte for WebAssembly i64, støtte for flere returverdier og import/eksport av mutable globale variabler.

W3C har publisert tre utkast til WebAssembly 2.0-spesifikasjoner:

  1. Nettmonteringskjerne: beskriver en virtuell maskin på lavt nivå for å kjøre mellomliggende WebAssembly-kode. Ressurser relatert til WebAssembly kommer i et ".wasm"-format, som ligner på Java ".class"-filer, som inneholder statiske data og kodesegmenter for å jobbe med disse dataene.
  2. WebAssembly JavaScript-grensesnitt: gir et API for integrasjon med JavaScript. Lar deg få verdier og sende parametere til WebAssembly-funksjoner. WebAssembly-kjøring følger JavaScript-sikkerhetsmodellen, og all interaksjon med verten utføres på en måte som ligner på å kjøre JavaScript-kode.
  3. WebAssemble Web API: definerer en API basert på Promise-mekanismen for å forespørre og utføre ".wasm"-ressurser. WebAssembly-ressursformatet er optimalisert for å starte kjøring uten å vente på at filen skal lastes ned fullstendig, noe som forbedrer responsen til webapplikasjoner.

Forskjeller mellom WebAssembly og WebAssembly 2.0

Det bør også bemerkes at det er noen viktige endringer i WebAssembly 2.0 sammenlignet med den første versjonen av standarden:

  • v128 vektortype støtte og relaterte vektorinstruksjoner som lar deg utføre operasjoner på flere numeriske verdier parallelt (SIMD, enkel instruksjon, flere data).
  • Evne til å importere og eksportere foranderlige globale variabler, som tillater global binding for verdier som stabelpekere i C++.
  • Nye instruksjoner for å konvertere float til int, som i stedet for å kaste et unntak på resultatoverflyt, returnerer minimum eller maksimum mulig verdi (påkrevd for SIMD).
  • Instruksjoner for å utvide tegnet til heltall (øk bitdybden til et tall ved å beholde tegnet og verdien).
  • Støtte for å returnere flere verdier etter blokker og funksjoner (i tillegg til å sende flere parametere til funksjoner).
  • Implementer JavaScript-funksjonene BigInt64Array og BigUint64Array å konvertere mellom JavaScript-typen BigInt og WebAssembly-representasjonen av 64-bits heltall.
  • Støtte for referansetyper (funcref og externref) og deres tilknyttede utsagn (velg, ref.null, ref.func og ref.is_null).
  • instruksjoner for minne.kopi, minne.fyll, minne.init og data.slipp for å kopiere data mellom minneregioner og slette minneregioner.
  • Instruksjoner for direkte tilgang og modifikasjon av tabeller (bord.sett, bord.få, bord.størrelse, bord.vokse).
  • Evne til å lage, importere og eksportere flere tabeller i en modul. Funksjoner for å kopiere/fylle tabeller i batch-modus (table.copy, table.init og elem.drop).

Til slutt, hvis du er interessert i å vite mer om det, kan du se detaljene I den følgende lenken.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: AB Internet Networks 2008 SL
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.