ËshtĂ« i disponueshĂ«m varianti paraprak i standardit WebAssembly 2.0

Konsorciumi W3C publikoi një draft të ri të specifikimit, i cili standardizon kodin ndërmjetës WebAssembly 2.0 dhe API-në përkatëse, duke lejuar krijimin e aplikacioneve me performancë të lartë, të transportueshme midis shfletuesve dhe platformave harduerike. WebAssembly ofron një kod ndërmjetës universalis të nivelit të ulët që nuk varet nga shfletuesi për të ekzekutuar aplikacione të kompiluar nga gjuhë të ndryshme programuese. Falë angazhimit të JIT për WebAssembly, është e mundur të arrihet një nivel performance afër kodit natyror.

Teknologjia WebAssembly mund të përdoret për të ekzekutuar në shfletues detyra që kërkojnë performancë të lartë, siç janë kodimi i videove, përpunimi i zërit, manipulimi i grafikës dhe 3D, zhvillimi i lojërave, operacionet kriptografike dhe llogaritjet matematikore duke organizuar ekzekutimin në shfletues të kodit të shkruar në gjuhë të kompilueshme, si C/C++.

Mes detyrave kryesore të WebAssembly theksohet sigurimi i transportueshmërisë, parashikueshmërisë së sjelljes dhe identitetit të ekzekutimit të kodit në platforma të ndryshme. Kohët e fundit, WebAssembly po promovojë gjithashtu si një platformë universale për ekzekutimin e sigurt të kodit në çdo infrastrukturë, sistem operativ dhe pajisje, duke mos u kufizuar vetëm në shfletues.

W3C publikoi tri specifikime preliminare të WebAssembly 2.0:

  • WebAssembly Core — pĂ«rshkruan njĂ« makinĂ« virtuale tĂ« nivelit tĂ« ulĂ«t pĂ«r ekzekutimin e kodit tĂ« ndĂ«rmjetĂ«m WebAssembly. Burimet e lidhura me WebAssembly ofrohen nĂ« formatin ".wasm", i 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 integrimin me JavaScript. Lejon marrjen e vlerave dhe kalimin e parametrave nĂ« funksionet e WebAssembly. Ekzekutimi i WebAssembly pĂ«rputhet me modelin e sigurisĂ« tĂ« JavaScript dhe tĂ« gjitha ndĂ«rveprimet me sistemin kryesor realizohen sipas logjikĂ«s sĂ« ekzekutimit tĂ« kodit JavaScript.
  • WebAssembly Web API — pĂ«rcakton njĂ« ndĂ«rfaqe programuese mbi mekanizmin e Promise 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 lejuar njĂ« pĂ«rmirĂ«sim tĂ« reagueshmĂ«risĂ« sĂ« aplikacioneve web.

Kryesore ndryshimet në WebAssembly 2.0, në krahasim me versionin e parë të standardit:

  • PĂ«rkrahja e tipit vektorial v128 dhe instrukcioneve tĂ« lidhura vektoriale, duke lejuar ekzekutimin paralel tĂ« operacioneve mbi disa vlera numerike (SIMD, single instruction multiple data).
  • MundĂ«sia e importit dhe eksportit tĂ« variablave globalĂ« tĂ« ndryshueshĂ«m (mutable), duke lejuar pĂ«rdorimin e lidhjes globale pĂ«r vlera tĂ« tilla si treguesit e stack nĂ« C++.
  • Instruksione tĂ« reja pĂ«r konvertimin e tipit float nĂ« int, tĂ« cilat nĂ« vend qĂ« tĂ« gjenerojnĂ« njĂ« pĂ«rjashtim nĂ« raste mbushjeje, 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 me ruajtjen e shenjĂ«s dhe vlerĂ«s).
  • MbĂ«shtetje pĂ«r kthimin e disa vlerave nĂ«pĂ«rmjet blloqeve dhe funksioneve (pĂ«rveç kalimit tĂ« disa parametrave nĂ« funksione).
  • Implementimi i funksioneve JavaScript BigInt64Array dhe BigUint64Array pĂ«r konvertimin midis tipit JavaScript BigInt dhe pĂ«rfaqĂ«simit tĂ« numrave tĂ« plotĂ« 64-bit nĂ« WebAssembly.
  • MbĂ«shtetje pĂ«r tipet referencĂ« (funcref dhe externref) dhe instruksionet e lidhura me to (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 midis hapĂ«sirave tĂ« memories dhe pastrimin e rajoneve tĂ« memories.
  • Instruksione pĂ«r qasje dhe ndryshim direkt tĂ« tabelave (table.set, table.get, table.size, table.grow). MundĂ«sia pĂ«r krijimin, importimin dhe eksportimin e disa tabelave nĂ« njĂ« modul. Funksionet e kopjimit/zgjerimit tĂ« tabelave nĂ« mĂ«nyrĂ« grumbuj (table.copy, table.init dhe elem.drop).

Burimi: opennet.ru

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