Ang WebAssembly 2.0 Standard Preview Anaa

Ang W3C nagpatik sa usa ka draft sa usa ka bag-ong detalye nga nag-standardize sa WebAssembly 2.0 middleware ug ang kauban nga API, nga makapahimo sa paghimo sa mga aplikasyon nga adunay taas nga pasundayag nga madaladala sa mga browser ug mga platform sa hardware. Ang WebAssembly naghatag og browser-independent, universal, ubos nga lebel nga intermediate code alang sa pagpadagan sa mga aplikasyon nga gihugpong gikan sa lain-laing mga programming language. Pinaagi sa paggamit sa JIT alang sa WebAssembly, mahimo nimong makab-ot ang lebel sa pasundayag duol sa lumad nga code.

Ang teknolohiya sa WebAssembly mahimong magamit sa paghimo sa mga buluhaton nga adunay taas nga pasundayag sa browser, sama sa pag-encode sa video, pagproseso sa audio, mga graphic ug pagmaniobra sa 3D, pag-uswag sa dula, mga operasyon sa cryptographic ug mga kalkulasyon sa matematika pinaagi sa pagtugot sa code nga gisulat sa mga sinultian nga sinultian sama sa C/C++. .

Lakip sa mga nag-unang tumong sa WebAssembly mao ang pagsiguro sa portability, predictable nga kinaiya ug parehas nga code execution sa lain-laing mga plataporma. Bag-o lang, ang WebAssembly gipasiugda usab isip usa ka unibersal nga plataporma alang sa luwas nga pagpatuman sa code sa bisan unsang imprastraktura, operating system, ug device, dili limitado sa mga browser.

Ang W3C nagpatik sa tulo ka mga detalye sa draft alang sa WebAssembly 2.0:

  • WebAssembly Core - Naghulagway sa usa ka ubos nga lebel nga virtual machine alang sa pagpadagan sa WebAssembly intermediate code. Ang mga kahinguhaan nga nalangkit sa WebAssembly gihatod sa ".wasm" nga pormat, susama sa ".class" nga mga file sa Java, nga adunay static nga datos ug code nga mga bahin alang sa pagtrabaho uban niana nga datos.
  • WebAssembly JavaScript Interface - Naghatag usa ka API alang sa panagsama sa JavaScript. Gitugotan ka nga makakuha mga kantidad ug ipasa ang mga parameter sa mga function sa WebAssembly. Ang pagpatuman sa WebAssembly nagsunod sa modelo sa seguridad sa JavaScript ug ang tanan nga interaksyon sa panguna nga sistema gihimo sa parehas nga paagi sama sa pagpatuman sa code sa JavaScript.
  • WebAssembly Web API - Naghubit sa usa ka interface sa programming base sa mekanismo sa Saad alang sa paghangyo ug pagpatuman sa ".wasm" nga mga kapanguhaan. Ang format sa kapanguhaan sa WebAssembly gi-optimize aron masugdan ang pagpatuman nga wala maghulat nga hingpit nga makarga ang file, nga nagpauswag sa pagtubag sa mga aplikasyon sa web.

Ang nag-unang mga pagbag-o sa WebAssembly 2.0 kumpara sa unang bersyon sa sumbanan:

  • Suporta alang sa v128 nga tipo sa vector ug may kalabutan nga mga instruksyon sa vector nga nagtugot kanimo sa paghimo sa mga aksyon sa daghang mga numero nga managsama (SIMD, usa ka panudlo nga daghang datos).
  • Abilidad sa pag-import ug pag-export sa mutable global variables, nga nagtugot sa global binding alang sa mga value sama sa stack pointers sa C++.
  • Bag-ong float ngadto sa int nga mga instruksyon sa pagkakabig nga, imbes nga ilabay ang usa ka eksepsiyon kung ang resulta moawas, ibalik ang minimum o maximum nga posible nga bili (gikinahanglan alang sa SIMD).
  • Mga panudlo alang sa pagpalapad sa timaan sa mga integer (pagdugang sa gamay nga giladmon sa usa ka numero samtang gipadayon ang timaan ug kantidad).
  • Suporta alang sa mga bloke ug mga gimbuhaton nga nagbalik sa daghang mga kantidad (dugang sa pagpasa sa daghang mga parameter sa mga function).
  • Ang pag-implementar sa BigInt64Array ug BigUint64Array JavaScript naglihok sa pag-convert tali sa BigInt JavaScript type ug sa WebAssembly nga representasyon sa 64-bit integers.
  • Suporta alang sa mga tipo sa pakisayran (funcref ug externref) ug ang ilang kaubang mga instruksyon (pagpili, ref.null, ref.func ug ref.is_null).
  • Memory.copy, memory.fill, memory.init, ug data.drop mga instruksyon alang sa pagkopya sa data tali sa mga rehiyon sa memorya ug paghawan sa mga rehiyon sa memorya.
  • Mga panudlo alang sa direkta nga pag-access ug pag-usab sa mga lamesa (table.set, table.get, table.size, table.grow). Abilidad sa paghimo, pag-import ug pag-eksport sa daghang mga lamesa sa usa ka module. Mga gimbuhaton sa pagkopya/pagpuno sa mga lamesa sa batch mode (table.copy, table.init ug elem.drop).

Source: opennet.ru

Idugang sa usa ka comment