K dispozici je předběžná verze standardu WebAssembly 2.0

Konsorcium W3C publikovalo pracovní verzi nové specifikace, která standardizuje mezikód WebAssembly 2.0 a související API, které umožňuje vytvářet vysoce výkonné aplikace přenositelné mezi prohlížeči a hardwarovými platformami. WebAssembly poskytuje nezávislý na prohlížeči univerzální nízkoúrovňový mezikód pro vykonávání aplikací zkompilovaných z různých programovacích jazyků. Díky využití JIT pro WebAssembly lze dosáhnout úrovně výkonu blízké nativnímu kódu.

Technologie WebAssembly může být použita k vykonávání v prohlížeči úkolů vyžadujících vysoký výkon, například kódování videa, zpracování zvuku, manipulace s grafikou a 3D, vývoj her, kryptografické operace a matematické výpočty prostřednictvím organizace vykonávání v prohlížeči kódu napsaného v kompilovaných jazycích, jako jsou C/C++.

Mezi hlavní úkoly WebAssembly patří zajištění přenositelnosti, předvídatelnosti chování a identity vykonávání kódu na různých platformách. V poslední době je WebAssembly také propagován jako univerzální platforma pro bezpečné vykonávání kódu v jakékoli infrastruktuře, operačních systémech a zařízeních, aniž by byl omezen na prohlížeče.

W3C publikovalo tři předběžné specifikace WebAssembly 2.0:

  • WebAssembly Core — popisuje nízkoúrovňový virtuální stroj pro provádění mezikódu WebAssembly. Související zdroje WebAssembly jsou dodávány ve formátu „.wasm“, který je podobný souborům „.class“ v Javě a obsahuje statická data a segmenty kódu pro práci s těmito daty.
  • WebAssembly JavaScript Interface — poskytuje API pro integraci s JavaScriptem. Umožňuje získávat hodnoty a předávat parametry do funkcí WebAssembly. Vykonávání WebAssembly odpovídá bezpečnostnímu modelu JavaScriptu a veškerá interakce s hlavním systémem probíhá analogicky k vykonávání JavaScriptového kódu.
  • WebAssembly Web API — definuje programové rozhraní založené na mechanismu Promise pro dotazování a provádění zdrojů „.wasm“. Formát zdrojů WebAssembly je optimalizován pro zahájení provádění, aniž by čekal na úplné načtení souboru, což zvyšuje odezvu webových aplikací.

Mezi hlavní změny ve WebAssembly 2.0 ve srovnání s první verzí standardu patří:

  • Podpora vektorového typu v128 a souvisejících vektorových instrukcí, které umožňují paralelní vykonávání operací nad několika číselnými hodnotami (SIMD, single instruction multiple data).
  • Možnost importu a exportu měnitelných (mutable) globálních proměnných, které umožňují aplikaci globální vazby pro takové hodnoty, jako jsou ukazatele zásobníku v C++.
  • Nové pokyny pro převod typu float na int, které namísto generování výjimky při překročení výsledku vracejí minimální nebo maximální možné hodnoty (nutné pro SIMD).
  • Pokyny pro rozšíření znaménka celočíselných hodnot (zvětšení počtu bitů čísla při zachování znaménka a hodnoty).
  • Podpora vracení více hodnot bloky a funkcemi (kromě předávání více parametrů do funkcí).
  • Implementace funkcí JavaScript BigInt64Array a BigUint64Array pro převod mezi typem BigInt v JavaScriptu a reprezentací 64-bitových celých čísel ve WebAssembly.
  • Podpora referenčních typů (funcref a externref) a s nimi spojených instrukcí (select, ref.null, ref.func a ref.is_null).
  • Instrukce memory.copy, memory.fill, memory.init a data.drop pro kopírování dat mezi oblastmi paměti a čištění paměťových oblastí.
  • Instrukce pro přímý přístup a změnu tabulek (table.set, table.get, table.size, table.grow). Možnost vytváření, importu a exportu několika tabulek v jednom modulu. Funkce kopírování/naplnění tabulek v dávkovém režimu (table.copy, table.init a elem.drop).

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster