WebAssembly 2.0 Standard Preview í boði

W3C hefur gefið út drög að nýrri forskrift sem staðlar WebAssembly 2.0 millihugbúnað og tilheyrandi API, sem gerir kleift að búa til afkastamikil forrit sem eru færanleg á milli vafra og vélbúnaðarpalla. WebAssembly býður upp á vafraóháðan, alhliða, lágstigs millikóða til að keyra forrit sem eru unnin úr ýmsum forritunarmálum. Með því að nota JIT fyrir WebAssembly geturðu náð frammistöðustigi nálægt innfæddum kóða.

Hægt er að nota WebAssembly tækni til að framkvæma afkastamikil verkefni í vafranum, svo sem myndkóðun, hljóðvinnslu, grafík og 3D meðferð, leikjaþróun, dulritunaraðgerðir og stærðfræðilega útreikninga með því að leyfa kóða skrifaðan á samsettum tungumálum eins og C/C++ .

Meðal meginmarkmiða WebAssembly er að tryggja færanleika, fyrirsjáanlega hegðun og eins keyrslu kóða á mismunandi kerfum. Nýlega hefur WebAssembly einnig verið kynnt sem alhliða vettvangur til að keyra kóða á öruggan hátt yfir hvaða innviði, stýrikerfi og tæki sem er, ekki takmarkað við vafra.

W3C hefur gefið út þrjú drög að forskriftum fyrir WebAssembly 2.0:

  • WebAssembly Core - Lýsir sýndarvél á lágu stigi til að keyra WebAssembly millikóða. Tilföng sem tengjast WebAssembly eru afhent á ".wasm" sniði, svipað og ".class" skrár í Java, sem innihalda kyrrstæð gögn og kóðahluta til að vinna með þessi gögn.
  • WebAssembly JavaScript tengi - Veitir API fyrir samþættingu við JavaScript. Gerir þér kleift að fá gildi og senda færibreytur til WebAssembly aðgerðir. Framkvæmd WebAssembly fer eftir JavaScript öryggislíkani og öll samskipti við aðalkerfið fara fram á sama hátt og keyrsla JavaScript kóða.
  • WebAssembly Web API - Skilgreinir forritunarviðmót byggt á Promise vélbúnaðinum til að biðja um og framkvæma ".wasm" tilföng. WebAssembly auðlindasniðið er fínstillt til að hefja keyrslu án þess að bíða eftir að skráin hleðst að fullu, sem bætir svörun vefforrita.

Helstu breytingar á WebAssembly 2.0 miðað við fyrstu útgáfu staðalsins:

  • Stuðningur við v128 vektorgerðina og tengdar vigurleiðbeiningar sem gera þér kleift að framkvæma aðgerðir á mörgum tölugildum samhliða (SIMD, einni kennslu og mörg gögn).
  • Geta til að flytja inn og flytja út breytanlegar alþjóðlegar breytur, sem gerir hnattræna bindingu fyrir gildi eins og staflabendingar í C++ kleift.
  • Nýjar leiðbeiningar fyrir umbreytingu frá floti í int sem, í stað þess að henda undantekningu þegar niðurstaðan flæðir yfir, skilar lágmarks- eða hámarksgildi (nauðsynlegt fyrir SIMD).
  • Leiðbeiningar um stækkun tákna á heiltölum (auka bitadýpt tölu á meðan formerki og gildi haldast).
  • Stuðningur við blokkir og aðgerðir sem skila mörgum gildum (auk þess að senda margar breytur til aðgerðir).
  • Innleiðing á BigInt64Array og BigUint64Array JavaScript aðgerðunum til að breyta á milli BigInt JavaScript gerðarinnar og WebAssembly framsetningu 64 bita heiltölu.
  • Stuðningur við tilvísunargerðir (funcref og externref) og tengdar leiðbeiningar (velja, ref.null, ref.func og ref.is_null).
  • Memory.copy, memory.fill, memory.init og data.drop leiðbeiningar til að afrita gögn á milli minnisvæða og hreinsa minnissvæði.
  • Leiðbeiningar um beinan aðgang að og breyta töflum (table.set, table.get, table.size, table.grow). Geta til að búa til, flytja inn og flytja út margar töflur í einni einingu. Aðgerðir til að afrita/fylla töflur í lotuham (table.copy, table.init og elem.drop).

Heimild: opennet.ru

Bæta við athugasemd