Udkast til WebAssembly 2.0-standard frigivet 

W3C afsløret For nylig gennem et indlæg et udkast til en ny specifikation der standardiserer forberedelseskoden for WebAssembly 2.0 og tilhørende API for at muliggøre oprettelsen af ​​højtydende applikationer, der er bærbare på tværs af browsere og hardwareplatforme.

For dem, der er nye til WebAssembly, bør du vide det dette giver en generisk middleware, lavt niveau og browser-uafhængig, til at køre kompilerede applikationer fra forskellige programmeringssprog. Ved at bruge JIT til WebAssembly kan du opnå et præstationsniveau tæt på native kode.

Om WebAssembly

WebAssembly kan bruges til at udføre højtydende opgaver i browseren, såsom videokodning, lydbehandling, 3D- og grafikmanipulation, spiludvikling, kryptografiske operationer og matematiske beregninger, ved at udføre kode skrevet på kompilerede sprog såsom C/C++.

Blandt hovedopgaverne for WebAssembly er levering af portabilitet, forudsigelighed af adfærd og identitet af kodeudførelse på forskellige platforme. For nylig er WebAssembly også blevet promoveret som en universel platform til sikker kodeudførelse på enhver infrastruktur, operativsystem og enhed, ikke begrænset til browsere.

Om WebAssembly 2.0-udkastet

På den del af ændringerne, der er foretaget siden WebAssembly, er de færdige forslag til WebAssembly 2.0 SIMD med fast bredde, massehukommelsesoperationer, referencetyper, JavaScript BigInt-understøttelse af WebAssembly i64, understøttelse af flere returværdier og import/eksport af mutable globale variabler.

W3C har offentliggjort tre udkast til WebAssembly 2.0-specifikationer:

  1. Web Assembly Core: beskriver en virtuel maskine på lavt niveau til at køre mellemliggende WebAssembly-kode. Ressourcer relateret til WebAssembly kommer i et ".wasm"-format, der ligner Java ".class"-filer, som indeholder statiske data og kodesegmenter til at arbejde med disse data.
  2. WebAssembly JavaScript-grænseflade: giver en API til integration med JavaScript. Giver dig mulighed for at få værdier og sende parametre til WebAssembly-funktioner. WebAssembly-udførelse følger JavaScript-sikkerhedsmodellen, og al interaktion med værten udføres på en måde, der svarer til at køre JavaScript-kode.
  3. WebAssemble Web API: definerer en API baseret på Promise-mekanismen til at anmode om og udføre ".wasm"-ressourcer. WebAssembly-ressourceformatet er optimeret til at starte eksekvering uden at vente på, at filen downloades helt, hvilket forbedrer webapplikationernes reaktionsevne.

Forskelle mellem WebAssembly og WebAssembly 2.0

Det skal også bemærkes, at der er nogle vigtige ændringer i WebAssembly 2.0 sammenlignet med den første version af standarden:

  • v128 vektortype understøttelse og relaterede vektorinstruktioner, der giver dig mulighed for at udføre operationer på flere numeriske værdier parallelt (SIMD, enkelt instruktion, flere data).
  • Evne til at importere og eksportere foranderlige globale variabler, som tillader global binding for værdier som stak-pointere i C++.
  • Nye instruktioner til at konvertere float til int, som i stedet for at kaste en undtagelse på resultatoverløb, returnerer den mindste eller maksimale mulige værdi (påkrævet for SIMD).
  • Instruktioner til at udvide tegnet for heltal (øg bitdybden af ​​et tal ved at beholde tegnet og værdien).
  • Understøttelse af returnering af flere værdier efter blokke og funktioner (samt at overføre flere parametre til funktioner).
  • Implementer JavaScript-funktionerne BigInt64Array og BigUint64Array at konvertere mellem JavaScript-typen BigInt og WebAssembly-repræsentationen af ​​64-bit heltal.
  • Understøttelse af referencetyper (funcref og externref) og deres tilknyttede udsagn (select, ref.null, ref.func og ref.is_null).
  • memory.copy, memory.fill, memory.init og data.drop instruktioner at kopiere data mellem hukommelsesområder og slette hukommelsesområder.
  • Instruktioner for direkte adgang og ændring af tabeller (table.set, table.get, table.size, table.grow).
  • Mulighed for at oprette, importere og eksportere flere tabeller i ét modul. Funktioner til at kopiere/udfylde tabeller i batch-tilstand (table.copy, table.init og elem.drop).

Endelig, hvis du er interesseret i at vide mere om det, kan du se detaljerne I det følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.