WebAssembly 2.0 Standard Preview eskuragarri

W3C-k WebAssembly 2.0 middleware eta hari lotutako API estandarizatzen dituen zehaztapen berri baten zirriborroa argitaratu du, nabigatzaile eta hardware plataformetan eramangarriak diren errendimendu handiko aplikazioak sortzea ahalbidetuz. WebAssembly-k nabigatzailetik independentea den, unibertsala eta maila baxuko tarteko kodea eskaintzen du hainbat programazio-lengoaiatatik konpilatutako aplikazioak exekutatzeko. WebAssembly-rako JIT erabiliz, jatorrizko kodetik hurbil dauden errendimendu-mailak lor ditzakezu.

WebAssembly teknologia arakatzailean errendimendu handiko zereginak egiteko erabil daiteke, hala nola, bideo kodeketa, audio prozesatzea, grafikoak eta 3D manipulazioa, jokoen garapena, eragiketa kriptografikoak eta kalkulu matematikoak, konpilatutako hizkuntzatan idatzitako kodea ahalbidetuz, hala nola C/C++. .

WebAssembly-ren helburu nagusien artean eramangarritasuna, portaera aurreikusgarria eta kode berdin-berdina exekutatzeko plataforma desberdinetan bermatzea dago. Berriki, WebAssembly plataforma unibertsal gisa ere sustatu da edozein azpiegitura, sistema eragile eta gailutan kodea modu seguruan exekutatzeko, arakatzaileetara mugatu gabe.

W3C-k WebAssembly 2.0rako hiru zehaztapen zirriborro argitaratu ditu:

  • WebAssembly Core - WebAssembly bitarteko kodea exekutatzeko maila baxuko makina birtual bat deskribatzen du. WebAssembly-ri lotutako baliabideak ".wasm" formatuan ematen dira, ".class" fitxategien antzera Javan, datu estatikoak eta datu horiekin lan egiteko kode-segmentuak dituztenak.
  • WebAssembly JavaScript Interface - JavaScript-ekin integratzeko API bat eskaintzen du. Balioak lortzeko eta WebAssembly funtzioetara parametroak pasatzeko aukera ematen du. WebAssembly-ren exekuzioak JavaScript segurtasun-ereduari jarraitzen dio eta sistema nagusiarekiko elkarrekintza guztia JavaScript kodea exekutatzen den modu berean egiten da.
  • WebAssembly Web APIa - ".wasm" baliabideak eskatzeko eta exekutatzeko Promise mekanismoan oinarritutako programazio interfaze bat definitzen du. WebAssembly baliabideen formatua fitxategia guztiz kargatu arte itxaron gabe exekutatzen hasteko optimizatuta dago, eta horrek web aplikazioen erantzuna hobetzen du.

WebAssembly 2.0-ren aldaketa nagusiak estandarraren lehen bertsioarekin alderatuta:

  • v128 bektore motarako eta erlazionatutako argibide bektorialetarako laguntza, zenbakizko balio anitzetan ekintzak paraleloan egiteko aukera ematen dutenak (SIMD, instrukzio bakarreko hainbat datu).
  • Aldagai global aldagarriak inportatzeko eta esportatzeko gaitasuna, C++-n pilatzeko erakusleak bezalako balioetarako lotura globala ahalbidetuz.
  • Float to int bihurtze instrukzio berriak, emaitza gainezka egiten denean salbuespen bat bota beharrean, ahalik eta balio minimoa edo maximoa itzultzen dutenak (SIMDrako beharrezkoa).
  • Zenbaki osoen zeinuak zabaltzeko jarraibideak (zenbaki baten bit-sakonera handitzea zeinua eta balioa mantenduz).
  • Balio anitzak itzultzen dituzten bloke eta funtzioetarako laguntza (funtzioei hainbat parametro pasatzeaz gain).
  • BigInt64Array eta BigUint64Array JavaScript funtzioen inplementazioa BigInt JavaScript motaren eta 64 biteko zenbaki osoen WebAssembly irudikapenaren artean bihurtzeko.
  • Erreferentzia-moten laguntza (funcref eta externref) eta haiei lotutako argibideak (select, ref.null, ref.func eta ref.is_null).
  • Memory.copy, memory.fill, memory.init eta data.drop argibideak memoria-eskualdeen artean datuak kopiatzeko eta memoria-eskualdeak garbitzeko.
  • Taulak zuzenean sartzeko eta aldatzeko argibideak (table.set, table.get, table.size, table.grow). Modulu bakarrean hainbat taula sortzeko, inportatzeko eta esportatzeko gaitasuna. Batch moduan taulak kopiatzeko/betetzeko funtzioak (table.copy, table.init eta elem.drop).

Iturria: opennet.ru

Gehitu iruzkin berria