Një version paraprak i standardit WebAssembly 2.0 është në dispozicion

Konsorciumi W3C publikoi draftin e specifikimit të ri, që standardizon kodin e mesëm WebAssembly 2.0 dhe API-në e lidhur, duke lejuar krijimin e aplikacioneve me performancë të lartë, të transferueshme midis shfletuesve dhe platformave harduerike. WebAssembly ofron një kod të përgjithshëm të ulët, të pavarur nga shfletuesi, për ekzekutimin e aplikacioneve të komiluara nga gjuhë të ndryshme programimi. Duke shfrytëzuar JIT për WebAssembly, mund të arrihet një nivel performance afër kodit natyror.

Teknologjia WebAssembly mund të përdoret për ekzekutimin në shfletues të detyrave që kërkojnë performancë të lartë, si kodimi i videove, përpunimi i zërit, manipulimi me grafikë dhe 3D, zhvillimi i lojrave, operacioneve kriptografike dhe llogaritjeve matematikore përmes organizimit të ekzekutimit të kodit në shfletues, të shkruara në gjuhë të komiluara, si C/C++.

Mes detyrave kryesore të WebAssembly, spikasin sigurimi i transferueshmërisë, parashikueshmërisë së sjelljes dhe identitetit të ekzekutimit të kodit në platforma të ndryshme. Së fundmi, WebAssembly po promovohen gjithashtu si një platformë universale për ekzekutimin e sigurt të kodit në çdo infrastrukturë, sisteme operative dhe pajisje, pa u kufizuar vetëm në shfletues.

W3C publikoi tri specifikime paraprake të WebAssembly 2.0:

  • WebAssembly Core — pĂ«rshkruan njĂ« makinĂ« virtuale tĂ« ulĂ«t pĂ«r ekzekutimin e kodit ndĂ«rmjetĂ«s WebAssembly. Burimet e lidhura me WebAssembly ofrohen nĂ« formatin ".wasm", tĂ« ngjashĂ«m me skedarĂ«t " .class" nĂ« Java dhe pĂ«rmbajnĂ« tĂ« dhĂ«na statike dhe segmente kodi pĂ«r tĂ« punuar me kĂ«to tĂ« dhĂ«na.
  • WebAssembly JavaScript Interface — ofron API pĂ«r integrim me JavaScript. Lejon marrjen e vlerave dhe transmetimin e parametrave nĂ« funksionet e WebAssembly. Ekzekutimi i WebAssembly i pĂ«rputhet me modelin e sigurisĂ« sĂ« JavaScript dhe e gjithĂ« ndĂ«rveprimi me sistemin e bazĂ«s realizohet siç ndodh me ekzekutimin e kodit JavaScript.
  • WebAssembly Web API — pĂ«rcakton njĂ« ndĂ«rfaqe programore tĂ« bazuar nĂ« mekanizmin Promesa pĂ«r kĂ«rkimin dhe ekzekutimin e burimeve ".wasm". Formati i burimeve WebAssembly Ă«shtĂ« optimizuar pĂ«r fillimin e ekzekutimit, pa pritur ngarkimin e plotĂ« tĂ« skedarit, duke rritur kĂ«shtu reagueshmĂ«rinĂ« e aplikacioneve web.

Ndryshimet kryesore në WebAssembly 2.0 në krahasim me versionin e parë të standardit:

  • MbĂ«shtetje pĂ«r llojin e vektorit v128 dhe instruksionet e lidhura vektoriale, tĂ« cilat lejojnĂ« ekzekutimin paralel tĂ« veprimeve mbi disa vlera numerike (SIMD, instruksion i vetĂ«me shumĂ« tĂ« dhĂ«na).
  • MundĂ«sia e importeve dhe eksporteve tĂ« variablave globalĂ« tĂ« ndryshueshĂ«m (mutable), duke lejuar aplikimin e lidhjes globale pĂ«r vlera tĂ« tilla si treguesit e stack-ut nĂ« C++.
  • Instruksione tĂ« reja pĂ«r konvertimin e llojit float nĂ« int, tĂ« cilat nĂ« vend tĂ« gjenerimit tĂ« njĂ« pĂ«rjashtimi nĂ« rast mbingarkese tĂ« rezultatit, kthejnĂ« vlerĂ«n minimale ose maksimale tĂ« mundshme (e nevojshme pĂ«r SIMD).
  • Instruksione pĂ«r zgjerimin e shenjĂ«s sĂ« numrave tĂ« plotĂ« (rritja e numrit nĂ« bit me ruajtjen e shenjĂ«s dhe vlerĂ«s).
  • MbĂ«shtetje pĂ«r kthimin e disa vlerave nga blloqet dhe funksionet (pĂ«rveç kalimit tĂ« disa parametrave nĂ« funksione).
  • Realizimi i funksioneve JavaScript BigInt64Array dhe BigUint64Array pĂ«r konvertimin midis llojit BigInt tĂ« JavaScript-it dhe pĂ«rfaqĂ«simit tĂ« numrave tĂ« plotĂ« 64-bit nĂ« WebAssembly.
  • MbĂ«shtetje pĂ«r lloje referencash (funcref dhe externref) dhe instruksionet e lidhura (select, ref.null, ref.func dhe ref.is_null).
  • Instruksione memory.copy, memory.fill, memory.init dhe data.drop pĂ«r kopjimin e tĂ« dhĂ«nave mes hapĂ«sirave tĂ« memories dhe pastrojnĂ« rajone tĂ« memories.
  • Instruksione pĂ«r akses dhe ndryshim tĂ« drejtpĂ«rdrejtĂ« tĂ« tabelave (table.set, table.get, table.size, table.grow). MundĂ«sia e krijimit, importit dhe eksportit tĂ« disa tabelave nĂ« njĂ« modul. Funksione pĂ«r kopjimin/pĂ«rmbushjen e tabelave nĂ« mĂ«nyrĂ« tĂ« paketuar (table.copy, table.init dhe elem.drop).

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster