Muhtasari wa Kawaida wa WebAssembly 2.0 Unapatikana

W3C imechapisha rasimu ya vipimo vipya ambavyo vinasawazisha WebAssembly 2.0 middleware na API inayohusishwa nayo, kuwezesha uundaji wa programu zenye utendaji wa juu ambazo zinaweza kubebeka kwenye vivinjari na majukwaa ya maunzi. WebAssembly hutoa msimbo wa kati unaojitegemea, wa ulimwengu wote na wa kiwango cha chini kwa ajili ya kuendesha programu zilizokusanywa kutoka kwa lugha mbalimbali za programu. Kwa kutumia JIT kwa WebAssembly, unaweza kufikia viwango vya utendaji karibu na msimbo asili.

Teknolojia ya WebAssembly inaweza kutumika kufanya kazi zenye utendakazi wa juu katika kivinjari, kama vile usimbaji video, usindikaji wa sauti, michoro na upotoshaji wa 3D, ukuzaji wa mchezo, utendakazi wa siri na hesabu za hisabati kwa kuruhusu msimbo kuandikwa katika lugha zilizokusanywa kama vile C/C++ .

Miongoni mwa malengo makuu ya WebAssembly ni kuhakikisha uwezo wa kubebeka, tabia inayoweza kutabirika na utekelezaji sawa wa kanuni kwenye majukwaa tofauti. Hivi majuzi, WebAssembly pia imekuzwa kama jukwaa la ulimwenguni pote la kutekeleza msimbo kwa usalama kwenye miundombinu yoyote, mfumo wa uendeshaji na kifaa, si tu kwa vivinjari.

W3C imechapisha rasimu tatu za vipimo vya WebAssembly 2.0:

  • WebAssembly Core - Inaelezea mashine pepe ya kiwango cha chini ya kuendesha msimbo wa kati wa WebAssembly. Rasilimali zinazohusishwa na WebAssembly huwasilishwa katika umbizo la ".wasm", sawa na faili za ".class" katika Java, zenye data tuli na sehemu za msimbo za kufanya kazi na data hiyo.
  • Kiolesura cha JavaScript cha WebAssembly - Hutoa API ya kuunganishwa na JavaScript. Inakuruhusu kupata maadili na kupitisha vigezo kwa vitendaji vya WebAssembly. Utekelezaji wa WebAssembly hufuata muundo wa usalama wa JavaScript na mwingiliano wote na mfumo mkuu unafanywa kwa njia sawa na kutekeleza msimbo wa JavaScript.
  • WebAssembly Web API - Inafafanua kiolesura cha programu kulingana na utaratibu wa Ahadi ya kuomba na kutekeleza rasilimali za ".wasm". Umbizo la rasilimali ya WebAssembly imeboreshwa ili kuanza utekelezaji bila kusubiri faili kupakiwa kikamilifu, ambayo inaboresha uitikiaji wa programu za wavuti.

Mabadiliko kuu katika WebAssembly 2.0 ikilinganishwa na toleo la kwanza la kiwango:

  • Usaidizi wa aina ya vekta ya v128 na maagizo yanayohusiana ya vekta ambayo hukuruhusu kufanya vitendo kwa nambari nyingi za nambari sambamba (SIMD, data nyingi za maagizo moja).
  • Uwezo wa kuagiza na kuuza nje vigeu vya kimataifa vinavyoweza kubadilika, kuruhusu ufungaji wa kimataifa kwa thamani kama vile viashiria vya rafu katika C++.
  • Maagizo mapya ya ubadilishaji wa kuelea hadi int ambayo, badala ya kutupa ubaguzi wakati matokeo yanapojaa, yanarudisha thamani ya chini au ya juu iwezekanavyo (inahitajika kwa SIMD).
  • Maagizo ya upanuzi wa ishara za nambari kamili (kuongeza kina kidogo cha nambari wakati wa kudumisha ishara na thamani).
  • Msaada kwa vizuizi na kazi zinazorudisha maadili mengi (pamoja na kupitisha vigezo vingi kwa kazi).
  • Utekelezaji wa kazi za BigInt64Array na BigUint64Array JavaScript ili kubadilisha kati ya aina ya JavaScript ya BigInt na uwakilishi wa WebAssembly wa integers 64-bit.
  • Usaidizi wa aina za marejeleo (funcref na externref) na maagizo yanayohusiana nayo (chagua, ref.null, ref.func na ref.is_null).
  • Memory.copy, memory.fill, memory.init, na data.drop maagizo ya kunakili data kati ya maeneo ya kumbukumbu na maeneo ya kumbukumbu kufuta.
  • Maagizo ya kupata moja kwa moja na kurekebisha meza (table.set, table.get, table.size, table.grow). Uwezo wa kuunda, kuagiza na kuuza nje meza nyingi katika moduli moja. Kazi za kunakili/kujaza majedwali katika hali ya kundi (table.copy, table.init na elem.drop).

Chanzo: opennet.ru

Kuongeza maoni