Išleistas WebAssembly 2.0 standartinis projektas 

W3C pristatė Neseniai per įrašą naujos specifikacijos projektas kuris standartizuoja paruošimo kodą WebAssembly 2.0 ir susijusi API kad būtų galima kurti didelio našumo programas, kurios yra nešiojamos įvairiose naršyklėse ir aparatinės įrangos platformose.

Tiems, kurie pradeda naudoti WebAssembly, turėtumėte tai žinoti tai suteikia bendrąją tarpinę programinę įrangą, žemo lygio ir nepriklausoma nuo naršyklės, kad būtų galima paleisti sukompiliuotas programas iš įvairių programavimo kalbų. Naudodami JIT, skirtą WebAssembly, galite pasiekti našumo lygį, artimą vietiniam kodui.

Apie WebAssembly

WebAssembly gali būti naudojamas didelio našumo užduotims atlikti naršyklėje, pavyzdžiui, vaizdo kodavimas, garso apdorojimas, 3D ir grafikos manipuliavimas, žaidimų kūrimas, kriptografinės operacijos ir matematiniai skaičiavimai, vykdant kodą, parašytą kompiliuotomis kalbomis, tokiomis kaip C/C++.

Viena iš pagrindinių WebAssembly užduočių yra perkeliamumo, elgesio nuspėjamumo ir kodo vykdymo skirtingose ​​platformose tapatumo užtikrinimas. Pastaruoju metu WebAssembly taip pat buvo reklamuojama kaip universali platforma saugiam kodo vykdymui bet kurioje infrastruktūroje, operacinėje sistemoje ir įrenginyje, neapsiribojant naršyklėmis.

Apie WebAssembly 2.0 juodraštį

Kalbant apie pakeitimus, kurie buvo atlikti po WebAssembly, galutiniai WebAssembly 2.0 pasiūlymai yra fiksuoto pločio SIMD, didelės atminties operacijos, nuorodų tipai, JavaScript BigInt palaikymas WebAssembly i64, kelių grąžinimo verčių palaikymas ir kintamųjų importavimas / eksportas. pasauliniai kintamieji.

W3C paskelbė tris WebAssembly 2.0 specifikacijų projektus:

  1. Web Assembly branduolys: aprašoma žemo lygio virtualioji mašina, skirta paleisti tarpinį WebAssembly kodą. Su „WebAssembly“ susiję ištekliai pateikiami „.wasm“ formatu, panašiu į „Java“ „.class“ failus, kuriuose yra statinių duomenų ir kodo segmentų, skirtų dirbti su tais duomenimis.
  2. „WebAssembly“ „JavaScript“ sąsaja: suteikia API, skirtą integracijai su JavaScript. Leidžia gauti reikšmes ir perduoti parametrus WebAssembly funkcijoms. „WebAssembly“ vykdomas pagal „JavaScript“ saugos modelį, o visa sąveika su pagrindiniu kompiuteriu atliekama panašiai kaip „JavaScript“ kodo paleidimas.
  3. „WebAssembly Web API“: apibrėžia API, pagrįstą pažado mechanizmu, skirtu prašyti ir vykdyti „.wasm“ išteklius. „WebAssembly“ išteklių formatas yra optimizuotas, kad būtų galima pradėti vykdyti nelaukiant, kol failas bus visiškai atsisiųstas, o tai pagerina žiniatinklio programų reagavimą.

„WebAssembly“ ir „WebAssembly 2.0“ skirtumai

Be to, reikėtų pažymėti, kad WebAssembly 2.0 yra keletas svarbių pakeitimų, palyginti su pirmąja standarto versija:

  • v128 vektoriaus tipo palaikymas ir susijusios vektorinės instrukcijos, leidžiančios lygiagrečiai atlikti operacijas su keliomis skaitinėmis reikšmėmis (SIMD, viena instrukcija, keli duomenys).
  • Galimybė importuoti ir eksportuoti kintamus globalius kintamuosius, kuri leidžia visuotinai susieti reikšmes kaip dėklo nuorodas C++.
  • Naujos instrukcijos, kaip konvertuoti float į int, kuris užuot padaręs išimtį dėl rezultato perpildymo, grąžina mažiausią arba didžiausią galimą reikšmę (būtina SIMD).
  • Instrukcijos, kaip išplėsti sveikųjų skaičių ženklą (padidinkite skaičiaus bitų gylį išlaikant ženklą ir reikšmę).
  • Kelių verčių grąžinimo pagal blokus ir funkcijas palaikymas (taip pat kelių parametrų perdavimas funkcijoms).
  • Įdiekite JavaScript funkcijas BigInt64Array ir BigUint64Array konvertuoti tarp JavaScript tipo BigInt ir WebAssembly 64 bitų sveikųjų skaičių.
  • Nuorodų tipų palaikymas (funcref ir externref) ir su jais susijusius teiginius (select, ref.null, ref.func ir ref.is_null).
  • memory.copy, memory.fill, memory.init ir data.drop instrukcijos norėdami kopijuoti duomenis tarp atminties sričių ir ištrinti atminties sritis.
  • Tiesioginės prieigos prie lentelių ir jų modifikavimo instrukcijos (table.set, table.get, table.size, table.grow).
  • Galimybė kurti, importuoti ir eksportuoti kelias lenteles viename modulyje. Funkcijos kopijuoti/pildyti lenteles paketiniu režimu (table.copy, table.init ir elem.drop).

Galiausiai, jei jus domina daugiau apie tai sužinoti, galite susipažinti su išsamia informacija Šioje nuorodoje.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Už duomenis atsakingas: AB Internet Networks 2008 SL
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.