WebAssembly 2.0 Standard Preview Inowanikwa

Iyo W3C yakaburitsa dhizaini yechinyorwa chitsva chinomisikidza WebAssembly 2.0 middleware uye yakabatana API, ichigonesa kugadzirwa kwepamusoro-kuita maapplication ayo anotakurika pabrowser nemapuratifomu ehardware. WebAssembly inopa browser-yakazvimirira, yepasirese, yakaderera-chikamu chepakati kodhi yekushandisa maapplication akaunganidzwa kubva kwakasiyana mitauro yekuronga. Nekushandisa JIT yeWebAssembly, unogona kuwana mazinga ekuita padyo nekodhi yeko.

Tekinoroji yeWebAssembly inogona kushandiswa kuita mabasa epamusoro-soro mubrowser, senge vhidhiyo encoding, audio processing, mifananidzo uye 3D manipulation, kusimudzira mutambo, cryptographic mashandiro uye kuverenga kwemasvomhu nekubvumira kodhi yakanyorwa mumitauro yakaunganidzwa seC/C++ .

Pakati pezvinangwa zvikuru zveWebAssembly kuve nechokwadi chekutakurika, hunhu hunofungidzirwa uye kufanana kwekodhi kuuraya pamapuratifomu akasiyana. Munguva pfupi yapfuura, WebAssembly yakakwidziridzwawo sepuratifomu yepasirese yekushandisa zvakachengeteka kodhi pane chero zvivakwa, inoshanda sisitimu, uye mudziyo, isina kuganhurirwa kumabhurawuza.

Iyo W3C yakaburitsa matatu dhizaini zvirevo zveWebAssembly 2.0:

  • WebAssembly Core - Inotsanangura yakaderera-level virtual muchina wekumhanyisa WebAssembly yepakati kodhi. Zvishandiso zvine chekuita neWebAssembly zvinounzwa nenzira ye ".wasm", yakafanana ne ".class" mafaira muJava, ane static data uye zvikamu zvekodhi zvekushanda nedata iyoyo.
  • WebAssembly JavaScript Interface - Inopa API yekubatanidza neJavaScript. Inokutendera iwe kuti uwane kukosha uye kupfuudza paramita kune WebAssembly mabasa. Kuitwa kweWebAssembly kunotevera iyo JavaScript yekuchengetedza modhi uye kudyidzana kwese neiyo huru system kunoitwa nenzira imwecheteyo nekuita JavaScript kodhi.
  • WebAssembly Web API - Inotsanangura chimiro chepurogiramu chinoenderana nePromise mechanism yekukumbira nekuita ".wasm" zviwanikwa. Iyo WebAssembly resource fomati yakagadziridzwa kuti itange kuita pasina kumirira kuti faira rizadze zvizere, izvo zvinovandudza kuterera kwewebhu application.

Shanduko huru muWebAssembly 2.0 kana ichienzaniswa neyekutanga vhezheni yechiyero:

  • Tsigiro yeiyo v128 vector mhando uye yakabatana vector mirairo iyo inokutendera iwe kuti uite zviito pane akati wandei manhamba kukosha mune yakafanana (SIMD, imwechete kuraira kwakawanda data).
  • Kugona kupinza uye kutumira kunze zvinochinjika zvepasirese zvinoshanduka, zvichibvumira kusungirirwa kwepasirese kune zvakakosha senge stack anonongedzera muC ++.
  • New float to int conversion mirairo iyo, pachinzvimbo chekukanda imwe nzira kana mhedzisiro yapfachukira, dzosera hushoma kana huwandu hwepamusoro hunogona kukosha (inodiwa kuSIMD).
  • Mirayiridzo yekuwedzera kwechiratidzo chemanhamba (kuwedzera kudzika kwenhamba uchichengetedza chiratidzo uye kukosha).
  • Tsigiro yezvivharo uye mabasa anodzosa akawanda hunhu (pamwe nekupfuura akawanda paramita kumabasa).
  • Kuitwa kweBigInt64Array uye BigUint64Array JavaScript inoshanda kushandura pakati peBigInt JavaScript mhando neWebAssembly inomiririra ye64-bit integers.
  • Tsigiro yemhando dzereferenzi (funcref uye externref) nemirayiridzo yakabatana (sarudza, ref.null, ref.func uye ref.is_null).
  • Memory.copy, memory.fill, memory.init, uye data.drop mirairo yekukopa data pakati penzvimbo dzendangariro nekubvisa ndangariro nzvimbo.
  • Mirayiridzo yekuwana zvakananga uye kugadzirisa matafura (table.set, table.get, table.size, table.grow). Kugona kugadzira, kupinza uye kutumira kunze akawanda matafura mune imwe module. Mabasa ekukopa/kuzadza matafura mubatch mode (table.copy, table.init uye elem.drop).

Source: opennet.ru

Voeg