Publicēts WebAssembly 3.0 standarts.

W3C konsorcijs paziņoja par WebAssembly 3.0 starptautisko standartu un ar to saistÄ«to API, kas ļauj izstrādāt augstas veiktspējas lietojumprogrammas, kas ir pārnesamas starp pārlÅ«kprogrammām un aparatÅ«ras platformām. WebAssembly nodroÅ”ina pārlÅ«ka neatkarÄ«gu vispārÄ«gu zemu lÄ«meņu starpkodu, lai izpildÄ«tu lietojumprogrammas, kas kompilētas no dažādām programmēŔanas valodām.

WebAssembly tehnoloÄ£ija var tikt izmantota augstas veiktspējas uzdevumu veikÅ”anai pārlÅ«kā, piemēram, video kodēŔanai, skaņas apstrādei, grafikas un 3D manipulācijām, spēļu izstrādei, kriptogrāfiskām operācijām un matemātiskām aprēķināŔanām, organizējot izpildi pārlÅ«kā ar valodām, kas tiek kompilētas, piemēram, C/C++. Izmantojot JIT WebAssembly, var sasniegt veiktspēju, kas ir tuvu natÄ«vam kodam.

Galvenie WebAssembly uzdevumi ietver pārnesamÄ«bas nodroÅ”ināŔanu, uzvedÄ«bas prognozējamÄ«bu un koda izpildes identitāti dažādās platformās. WebAssembly neaprobežojas ar pārlÅ«kprogrammām un tiek virzÄ«ts kā vispārēja platforma droÅ”ai koda izpildei jebkurās infrastruktÅ«rās, operētājsistēmās un ierÄ«cēs.

Pieejamās specifikācijas:

  • WebAssembly Core — apraksta zemu lÄ«meņu virtuālo maŔīnu, lai izpildÄ«tu WebAssembly starpkodu. Ar WebAssembly saistÄ«tie resursi tiek piegādāti formātā Ā«.wasmĀ», kas ir lÄ«dzÄ«gs Ā«.classĀ» failiem Java, un satur statiskos datus un koda segmentus, lai strādātu ar Å”iem datiem.
  • WebAssembly JavaScript API — nodroÅ”ina API, lai integrētu ar JavaScript. Tas ļauj iegÅ«t vērtÄ«bas un nodot parametrus funkcijām WebAssembly. WebAssembly izpilde atbilst JavaScript droŔības modelim, un visa mijiedarbÄ«ba ar galveno sistēmu notiek, tāpat kā izpildot JavaScript kodu.
  • WebAssembly Web API — definē programmatÅ«ras saskarni, kas balstÄ«ta uz Promise mehānismu, lai pieprasÄ«tu un izpildÄ«tu Ā«.wasmĀ» resursus. WebAssembly resursu formāts ir optimizēts, lai sāktu izpildi, negaidot pilnu faila ielādēŔanu, kas uzlabo web lietojumprogrammu reakcijas ātrumu.
  • WASI API — nosaka moduļu sistēmas interfeisu, lai palaistu WebAssembly ārpus pārlÅ«kprogrammas un nodroÅ”inātu piekļuvi tādiem resursiem kā faili, tÄ«kla savienojumi, pseidoizlases Ä£enerators un sistēmas pulksteņi.

Tiek norādīts, ka jaunajā standarta versijā ievērojami uzlabota augsta līmeņa valodu kompilācijas atbalsts WebAssembly. Piemēram, ir ieviesta iespēja kompilēt WebAssembly projektus valodās Java, OCaml, Scala, Kotlin, Scheme un Dart. Galvenās izmaiņas WebAssembly 3.0, salīdzinot ar otro standarta versiju:

  • Ieviests atbalsts 64-bit adreÅ”u telpai. Tagad atmiņas adresēŔanai var izmantot i64 tipu, nevis tikai i32, kas paplaÅ”ina pieejamo adresu telpu no 4 GB lÄ«dz 16 EB (pārlÅ«kprogrammā izpildes laikā ir noteikts ierobežojums 16 GB).
  • Tiek nodroÅ”ināta iespēja vienlaikus izmantot vairākus atmiņas objektus vienā WebAssembly modulÄ« un strādāt ar dažādām adresu telpām. Starp citu, ir iespējams pārsÅ«tÄ«t datus starp dažādiem atmiņas objektu eksemplāriem, kas izvietoti dažādās adresu telpās.
  • Izveidots atbalsts atkritumu savākÅ”anai. Papildus iepriekÅ” pieejamai lineārās atmiņas veidam piedāvāts atseviŔķs krātuves veids, kuru automātiski pārvalda atkritumu savācējs. Kompilators tagad var izmantot atseviŔķas datu struktÅ«ras, masÄ«vus un mainÄ«gos, par kuru atmiņas pieŔķirÅ”anu un dzÄ«ves cikla pārvaldÄ«bu atbild WebAssembly.
  • Izveidots atbalsts tipizētām atsaucēm, kas var aprakstÄ«t precÄ«zu struktÅ«ru vērtÄ«bai, uz kuru atsauce norāda, ļaujot izvairÄ«ties no papildu pārbaudēm izpildes laikā. Atbalsta apakÅ”tipus, tipu rekursiju un iespēju droÅ”i izmantot atsauces uz funkcijām, kurām nav nepiecieÅ”amas tipu un robežu pārbaudes izpildes laikā.
  • Izveidots atbalsts astes izsaukumiem (Tail call), kur paÅ”reizējā funkcija tÅ«lÄ«t beidz izpildi pēc citas funkcijas izsaukuma, netērējot vietu stekā.
  • Izveidots atbalsts izņēmumu apstrādei.
  • Izveidots atbalsts 'relaksētām' SIMD instrukcijām, kas ļauj sasniegt augstāku veiktspēju, atteicoties no stingras semantikas ievēroÅ”anas visās aparatÅ«ras platformās.
  • Pievienota atbalsta mehānisma izpildes profila noteikÅ”ana, kas nosaka neatkarÄ«gu no paÅ”reizējās platformas uzvedÄ«bu instrukcijām, kuru izpildes rezultāti var atŔķirties dažādās platformās (peldpunktu operācijas, NaN vērtÄ«bas atgrieÅ”ana, vājinātas vektora instrukcijas). Izvēloties Å”o profilu, Wasm nodroÅ”ina deterministisku uzvedÄ«bu, reproducējamÄ«bu un pārnesamÄ«bu.
  • Pievienota sintakse, lai izveidotu pielāgotus anotācijas, kas ļauj pievienot papildu informāciju WebAssembly kodam. Agrāk pielāgotu sekciju atbalsts, kas ļauj uzglabāt nejauÅ”u informāciju, bija pieejams WebAssembly binārajā formātā, bet trÅ«ka WebAssembly teksta formātā. Tagad ir iespējams pievienot Å”o informāciju lasāmā un rediģējamā veidā.
  • JavaScript API pievienotas iebÅ«vētas funkcijas, kuras strādā ar virkņu apstrādi. Agrāk JavaScript virknes varēja nodot WebAssembly tikai kā ārējās saites, bet tagad var tieÅ”i reaģēt uz virkņu izsaukumiem un manipulēt ar tām iekŔēji WebAssembly.

Avots: opennet.lv

Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster