WebAssembly 2.0 Standard Preview Ikupezeka

W3C yasindikiza zolemba zatsopano zomwe zimafanana ndi WebAssembly 2.0 middleware ndi API yogwirizana nayo, zomwe zimathandizira kupanga mapulogalamu apamwamba omwe amatha kunyamulika pa asakatuli ndi mapulatifomu a hardware. WebAssembly imapereka kachidindo kodziyimira pawokha kwa msakatuli, wapadziko lonse lapansi, wapakatikati pakugwiritsa ntchito mapulogalamu opangidwa kuchokera kuzilankhulo zosiyanasiyana zamapulogalamu. Pogwiritsa ntchito JIT ya WebAssembly, mutha kukwaniritsa magwiridwe antchito pafupi ndi ma code anu.

Ukadaulo wa WebAssembly ungagwiritsidwe ntchito pochita ntchito zowoneka bwino kwambiri mumsakatuli, monga kusungitsa mavidiyo, kukonza ma audio, zithunzi ndi kusintha kwa 3D, kukonza masewera, kubisa mawu komanso kuwerengera masamu polola ma code olembedwa m'zilankhulo zophatikizidwa monga C/C++ .

Zina mwazolinga zazikulu za WebAssembly ndikuwonetsetsa kusuntha, machitidwe odziwikiratu komanso ma code ofanana pamapulatifomu osiyanasiyana. Posachedwapa, WebAssembly yakwezedwanso ngati nsanja yapadziko lonse lapansi yoperekera ma code mosamala pazipangizo zilizonse, makina ogwiritsira ntchito, ndi zida, osati pakusakatula.

W3C yasindikiza zolemba zitatu za WebAssembly 2.0:

  • WebAssembly Core - Imalongosola makina otsika omwe amayendetsa kachidindo yapakatikati ya WebAssembly. Zida zogwirizana ndi WebAssembly zimaperekedwa mumtundu wa ".wasm", wofanana ndi mafayilo a ".class" mu Java, omwe ali ndi deta yosasunthika ndi zigawo za code zogwirira ntchito ndi deta imeneyo.
  • WebAssembly JavaScript Interface - Imapereka API yophatikiza ndi JavaScript. Imakulolani kuti mupeze zofunikira ndikudutsa magawo ku ntchito za WebAssembly. Kukonzekera kwa WebAssembly kumatsatira chitsanzo cha chitetezo cha JavaScript ndipo kuyanjana konse ndi dongosolo lalikulu kumachitika mofanana ndi kugwiritsa ntchito JavaScript code.
  • WebAssembly Web API - Imatanthawuza mawonekedwe a mapulogalamu potengera njira ya Promise yofunsira ndikugwiritsa ntchito ".wasm" zothandizira. Mawonekedwe a WebAssembly amakonzedwa kuti ayambe kugwira ntchito popanda kudikirira kuti fayiloyo ithe, zomwe zimapangitsa kuyankha kwa mapulogalamu a pa intaneti.

Zosintha zazikulu mu WebAssembly 2.0 poyerekeza ndi mtundu woyamba wa muyezo:

  • Kuthandizira kwa mtundu wa v128 vekitala ndi malangizo okhudzana ndi vekitala omwe amakulolani kuti muchitepo kanthu paziwerengero zingapo zofananira (SIMD, malangizo amodzi angapo angapo).
  • Kutha kulowetsa ndi kutumiza zosinthika zapadziko lonse lapansi, kulola kumangiriza padziko lonse lapansi pamikhalidwe monga zolozera mu C++.
  • Malangizo osinthika atsopano oyandama kupita ku int omwe, m'malo mongosiyapo zotsatira zake zikasefukira, abwezereni mtengo wocheperako kapena wopambana (wofunikira ku SIMD).
  • Malangizo pakukulitsa zikwangwani (kuwonjezera kuya pang'ono kwa nambala ndikusunga chizindikiro ndi mtengo).
  • Kuthandizira midadada ndi ntchito zomwe zimabweretsa zinthu zambiri (kuphatikiza pakudutsa magawo angapo ku ntchito).
  • Kukhazikitsa kwa BigInt64Array ndi BigUint64Array JavaScript amagwira ntchito kuti asinthe pakati pa mtundu wa BigInt JavaScript ndi chiwonetsero cha WebAssembly cha 64-bit integers.
  • Thandizo la mitundu yolozera (funcref ndi externref) ndi malangizo ogwirizana nawo (sankhani, ref.null, ref.func ndi ref.is_null).
  • Malangizo a Memory.copy, memory.fill, memory.init, ndi data.drop malangizo a kukopera deta pakati pa zigawo zokumbukira ndi kuchotsa zigawo za kukumbukira.
  • Malangizo ofikira mwachindunji ndikusintha matebulo (table.set, table.get, table.size, table.grow). Kutha kupanga, kulowetsa ndi kutumiza matebulo angapo mugawo limodzi. Ntchito zokopera / kudzaza matebulo mu batch mode (table.copy, table.init ndi elem.drop).

Source: opennet.ru

Kuwonjezera ndemanga