Megjelent a WebAssembly 2.0 szabvány vázlata 

A W3C bemutatta Nemrég egy poszton keresztül egy új specifikáció tervezete amely szabványosítja az előkészítési kódot WebAssembly 2.0 és a kapcsolódó API nagy teljesítményű alkalmazások létrehozásának lehetővé tétele, amelyek hordozhatók böngészők és hardverplatformok között.

Azoknak, akik most ismerkednek a WebAssembly-vel, ezt tudniuk kell ez egy általános köztes szoftvert biztosít, alacsony szintű és böngészőfüggetlen, lefordított alkalmazások futtatásához különböző programozási nyelvekből. A JIT for WebAssembly használatával a natív kódhoz közeli teljesítményszintet érhet el.

A WebAssembly-ről

WebAssemble nagy teljesítményű feladatok végrehajtására használható a böngészőben, mint például a videó kódolás, hangfeldolgozás, 3D és grafikai manipuláció, játékfejlesztés, kriptográfiai műveletek és matematikai számítások, lefordított nyelveken, például C/C++-on írt kód végrehajtásával.

A WebAssembly fő feladatai közé tartozik a hordozhatóság, a viselkedés kiszámíthatósága és a kódvégrehajtás azonossága a különböző platformokon. A közelmúltban a WebAssemblyt mint univerzális platformot népszerűsítették a biztonságos kódfuttatáshoz bármilyen infrastruktúrán, operációs rendszeren és eszközön, nem csak a böngészőkben.

A WebAssembly 2.0 tervezetéről

A WebAssembly óta végrehajtott változtatások részéről a WebAssembly 2.0 kész javaslatai a fix szélességű SIMD, a tömegmemória műveletek, a referenciatípusok, a JavaScript BigInt támogatása a WebAssembly i64 számára, a többszörös visszatérési érték támogatása és a változók importálása/exportálása. globális változók.

A W3C három WebAssembly 2.0 specifikáció tervezetet tett közzé:

  1. Web Assembly mag: egy alacsony szintű virtuális gépet ír le köztes WebAssembly-kód futtatásához. A WebAssembly-hez kapcsolódó erőforrások „.wasm” formátumban érkeznek, hasonlóan a Java „.class” fájlokhoz, amelyek statikus adatokat és kódszegmenseket tartalmaznak az adatokkal való együttműködéshez.
  2. WebAssembly JavaScript felület: API-t biztosít a JavaScripttel való integrációhoz. Lehetővé teszi értékek lekérését és paraméterek átadását a WebAssembly függvényeknek. A WebAssembly végrehajtása a JavaScript biztonsági modelljét követi, és minden interakció a gazdagéppel a JavaScript kód futtatásához hasonló módon történik.
  3. WebAssemble Web API: meghatároz egy API-t a Promise mechanizmuson alapuló ".wasm" erőforrások kérésére és végrehajtására. A WebAssembly erőforrásformátum úgy van optimalizálva, hogy a fájl teljes letöltésére való várakozás nélkül induljon el a végrehajtás, ami javítja a webalkalmazások válaszkészségét.

A WebAssembly és a WebAssembly 2.0 közötti különbségek

Azt is meg kell jegyezni, hogy a WebAssembly 2.0-ban van néhány fontos változás a szabvány első verziójához képest:

  • v128 vektor típusú támogatás és a kapcsolódó vektorutasítások, amelyek lehetővé teszik több numerikus érték párhuzamos végrehajtását (SIMD, egyetlen utasítás, több adat).
  • Képes változó globális változók importálására és exportálására, amely lehetővé teszi az értékek globális kötését veremmutatóként a C++ nyelven.
  • Új utasítások a float int-re konvertálásához, amely ahelyett, hogy kivételt dobna az eredmény túlcsordulása esetén, a lehetséges minimális vagy maximális értéket adja vissza (a SIMD-hez szükséges).
  • Útmutató az egész számok előjelének bővítéséhez (egy szám bitmélységének növelése az előjel és az érték megtartásával).
  • Több érték blokkok és függvények szerinti visszaadásának támogatása (valamint több paraméter átadása a függvényeknek).
  • Valósítsa meg a BigInt64Array és BigUint64Array JavaScript függvényeket konvertálni a JavaScript típusú BigInt és a 64 bites egész számok WebAssembly reprezentációja között.
  • Referenciatípusok támogatása (funcref és externref) és a hozzájuk tartozó utasítások (select, ref.null, ref.func és ref.is_null).
  • memory.copy, memory.fill, memory.init és data.drop utasítások adatok másolásához a memóriaterületek között és a memóriaterületek törléséhez.
  • Utasítások a táblázatok közvetlen eléréséhez és módosításához (table.set, table.get, table.size, table.grow).
  • Lehetőség több tábla létrehozására, importálására és exportálására egy modulban. Függvények a táblák kötegelt módban történő másolására/kitöltésére (table.copy, table.init és elem.drop).

Végül, ha többet szeretne megtudni róla, akkor tanulmányozza a részleteket A következő linken.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: AB Internet Networks 2008 SL
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.