En förhandsversion av standarden WebAssembly 2.0 Àr tillgÀnglig

W3C-konsortiet har publicerat ett utkast till en ny specifikation för standardisering av mellanliggande kod WebAssembly 2.0 och dess tillhörande API, vilket möjliggör skapandet av högpresterande applikationer som kan köras pÄ olika webblÀsare och hÄrdvaruplattformar. WebAssembly erbjuder en webblÀsaroberoende universell lÄg-nivÄ mellanliggande kod för körning av applikationer som har kompilerats frÄn olika programmeringssprÄk. Genom att anvÀnda JIT för WebAssembly kan man nÄ en prestandanivÄ nÀra den för nativ kod.

Teknologin WebAssembly kan anvÀndas för att utföra resurskrÀvande uppgifter i webblÀsaren, sÄsom videokodning, ljudbehandling, grafik- och 3D-manipulation, spelutveckling, kryptografiska operationer och matematiska berÀkningar genom att köra kod som skrivits i kompilierade sprÄk, som C/C++, i webblÀsaren.

Bland huvuduppgifterna för WebAssembly utmÀrker sig att sÀkerstÀlla portabilitet, förutsÀgbarhetsbeteende och identitet av kodens utförande pÄ olika plattformar. PÄ senare tid har WebAssembly ocksÄ marknadsförts som en universell plattform för sÀker körning av kod i alla infrastrukturer, operativsystem och enheter, inte bara begrÀnsat till webblÀsare.

W3C har publicerat tre preliminÀra specifikationer för WebAssembly 2.0:

  • WebAssembly Core — beskriver en lĂ„gnivĂ„ virtuell maskin för att köra mellanliggande kod för WebAssembly. Resurser kopplade till WebAssembly levereras i formatet ".wasm", som liknar ".class"-filer i Java och innehĂ„ller statiska data och kodsegment för att arbeta med dessa data.
  • WebAssembly JavaScript Interface — tillhandahĂ„ller ett API för integration med JavaScript. Gör det möjligt att hĂ€mta vĂ€rden och skicka parametrar till WebAssembly-funktioner. Utförandet av WebAssembly följer JavaScripts sĂ€kerhetsmodell och all interaktion med det underliggande systemet sker pĂ„ liknande sĂ€tt som körning av JavaScript-kod.
  • WebAssembly Web API — definierar ett programmeringsgrĂ€nssnitt baserat pĂ„ Promise-mekanismen för att begĂ€ra och köra resurser ".wasm". Formatet för WebAssembly-resurser Ă€r optimerat för att börja körningen utan att vĂ€nta pĂ„ att hela filen ska laddas, vilket förbĂ€ttrar responsiviteten hos webbapplikationer.

De viktigaste Àndringarna i WebAssembly 2.0 jÀmfört med den första versionen av standarden:

  • Stöd för vektortypen v128 och relaterade vektorinstruktioner som möjliggör parallell bearbetning av flera numeriska vĂ€rden (SIMD, single instruction multiple data).
  • Möjlighet att importera och exportera Ă€nderliga (mutable) globala variabler, vilket möjliggör anvĂ€ndning av global bindning för sĂ„dana vĂ€rden som stackpekare i C++.
  • Nya instruktioner för att konvertera frĂ„n float till int, som istĂ€llet för att generera ett undantag vid överflöd returnerar det minimalt eller maximalt möjliga vĂ€rdet (nödvĂ€ndigt för SIMD).
  • Instruktioner för att utöka tecknet för hela tal (öka bitdjupet av ett tal med bevarande av tecken och vĂ€rde).
  • Stöd för att returnera flera vĂ€rden i block och funktioner (utöver att överföra flera parametrar till funktioner).
  • Implementering av JavaScript-funktionerna BigInt64Array och BigUint64Array för konvertering mellan JavaScript-typen BigInt och representationen av 64-bitars hela tal i WebAssembly.
  • Stöd för referenstyper (funcref och externref) och relaterade instruktioner (select, ref.null, ref.func och ref.is_null).
  • Instruktioner memory.copy, memory.fill, memory.init och data.drop för att kopiera data mellan minnesomrĂ„den och rensa minnesregioner.
  • Instruktioner för direkt Ă„tkomst och Ă€ndring av tabeller (table.set, table.get, table.size, table.grow). Möjlighet att skapa, importera och exportera flera tabeller i ett enda modul. Funktioner för kopiering/fyllning av tabeller i batchlĂ€ge (table.copy, table.init och elem.drop).

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster