Pratinjau Standar WebAssembly 2.0 Kasedhiya

W3C wis nerbitake draf spesifikasi anyar sing standarisasi WebAssembly 2.0 middleware lan API sing gegandhengan, ngidini nggawe aplikasi kinerja dhuwur sing portabel ing browser lan platform hardware. WebAssembly nyedhiyakake kode penengah tingkat rendah browser-independen, universal, kanggo mbukak aplikasi sing disusun saka macem-macem basa program. Kanthi nggunakake JIT kanggo WebAssembly, sampeyan bisa entuk tingkat kinerja sing cedhak karo kode asli.

Teknologi WebAssembly bisa digunakake kanggo nindakake tugas kanthi kinerja dhuwur ing browser, kayata enkoding video, pangolahan audio, grafis lan manipulasi 3D, pangembangan game, operasi kriptografi lan pitungan matematika kanthi ngidini kode ditulis ing basa kompilasi kayata C/C++. .

Antarane tujuan utama WebAssembly yaiku njamin portabilitas, prilaku sing bisa diprediksi lan eksekusi kode sing padha ing platform sing beda-beda. Bubar, WebAssembly uga wis dipromosekake minangka platform universal kanggo nglakokake kode kanthi aman ing kabeh prasarana, sistem operasi, lan piranti, ora winates ing browser.

W3C wis nerbitake telung draf spesifikasi kanggo WebAssembly 2.0:

  • WebAssembly Core - Nggambarake mesin virtual tingkat rendah kanggo nglakokake kode perantara WebAssembly. Sumber daya sing ana gandhengane karo WebAssembly dikirim ing format ".wasm", padha karo file ".class" ing Jawa, ngemot data statis lan segmen kode kanggo nggarap data kasebut.
  • WebAssembly JavaScript Interface - Nyedhiyani API kanggo integrasi karo JavaScript. Ngidini sampeyan entuk nilai lan pass parameter menyang fungsi WebAssembly. Eksekusi WebAssembly ngetutake model keamanan JavaScript lan kabeh interaksi karo sistem utama ditindakake kanthi cara sing padha karo ngeksekusi kode JavaScript.
  • WebAssembly Web API - Nemtokake antarmuka pemrograman adhedhasar mekanisme Janji kanggo njaluk lan nglakokake sumber daya ".wasm". Format sumber WebAssembly dioptimalake kanggo miwiti eksekusi tanpa ngenteni file dimuat kanthi lengkap, sing nambah responsif aplikasi web.

Owah-owahan utama ing WebAssembly 2.0 dibandhingake karo versi pisanan standar:

  • Dhukungan kanggo jinis vektor v128 lan pandhuan vektor sing gegandhengan sing ngidini sampeyan nindakake tumindak ing pirang-pirang nilai numerik kanthi paralel (SIMD, instruksi siji sawetara data).
  • Kemampuan kanggo ngimpor lan ngekspor variabel global sing bisa diowahi, ngidini ikatan global kanggo nilai kayata pitunjuk tumpukan ing C ++.
  • Ngambang anyar kanggo instruksi konversi int sing, tinimbang mbuwang pangecualian nalika asil overflows, bali minimal utawa maksimum Nilai bisa (perlu kanggo SIMD).
  • Pandhuan kanggo expansion tandha saka wilangan bulat (nambah ambane dicokot saka nomer nalika njaga tandha lan nilai).
  • Dhukungan kanggo pamblokiran lan fungsi sing ngasilake pirang-pirang nilai (saliyane ngliwati pirang-pirang parameter menyang fungsi).
  • Implementasi fungsi JavaScript BigInt64Array lan BigUint64Array kanggo ngowahi antarane jinis JavaScript BigInt lan perwakilan WebAssembly saka integer 64-bit.
  • Dhukungan kanggo jinis referensi (funcref lan externref) lan instruksi sing gegandhengan (pilih, ref.null, ref.func lan ref.is_null).
  • Memory.copy, memory.fill, memory.init, lan data.drop instruksi kanggo nyalin data antarane wilayah memori lan mbusak wilayah memori.
  • Pandhuan kanggo langsung ngakses lan ngowahi tabel (table.set, table.get, table.size, table.grow). Kemampuan kanggo nggawe, ngimpor lan ngekspor macem-macem tabel ing siji modul. Fungsi kanggo nyalin / ngisi tabel ing mode kumpulan (table.copy, table.init lan elem.drop).

Source: opennet.ru

Add a comment