Draf standar WebAssembly 2.0 dirilis 

W3C diluncurkan Baru-baru ini melalui sebuah postingan draf spesifikasi baru yang menstandarkan kode persiapan WebAssembly 2.0 dan API terkait untuk memungkinkan pembuatan aplikasi berkinerja tinggi yang portabel di seluruh browser dan platform perangkat keras.

Bagi mereka yang baru mengenal WebAssembly, Anda harus tahu itu ini menyediakan middleware generik, tingkat rendah dan browser-independen, untuk menjalankan aplikasi yang dikompilasi dari berbagai bahasa pemrograman. Dengan menggunakan JIT untuk WebAssembly, Anda dapat mencapai tingkat kinerja yang mendekati kode asli.

Tentang WebAssembly

WebAssembly dapat digunakan untuk melakukan tugas berkinerja tinggi di browser, seperti encoding video, pemrosesan audio, manipulasi 3D dan grafik, pengembangan game, operasi kriptografi, dan perhitungan matematis, dengan mengeksekusi kode yang ditulis dalam bahasa yang dikompilasi seperti C/C++.

Di antara tugas utama WebAssembly adalah penyediaan portabilitas, prediktabilitas perilaku, dan identitas eksekusi kode pada platform yang berbeda. Baru-baru ini, WebAssembly juga telah dipromosikan sebagai platform universal untuk eksekusi kode yang aman pada infrastruktur, sistem operasi, dan perangkat apa pun, tidak terbatas pada browser.

Tentang konsep WebAssembly 2.0

Pada bagian dari perubahan yang telah dibuat sejak WebAssembly adalah proposal selesai untuk WebAssembly 2.0 adalah SIMD lebar tetap, operasi memori massal, tipe referensi, dukungan JavaScript BigInt untuk WebAssembly i64, dukungan untuk beberapa nilai pengembalian dan impor/ekspor yang dapat diubah variabel global.

W3C telah menerbitkan tiga draf spesifikasi WebAssembly 2.0:

  1. Inti Perakitan Web: menjelaskan mesin virtual tingkat rendah untuk menjalankan kode WebAssembly perantara. Sumber daya yang terkait dengan WebAssembly hadir dalam format ".wasm", mirip dengan file ".class" Java, yang berisi data statis dan segmen kode untuk bekerja dengan data tersebut.
  2. Antarmuka JavaScript WebAssembly: menyediakan API untuk integrasi dengan JavaScript. Memungkinkan Anda mendapatkan nilai dan meneruskan parameter ke fungsi WebAssembly. Eksekusi WebAssembly mengikuti model keamanan JavaScript, dan semua interaksi dengan host dilakukan dengan cara yang mirip dengan menjalankan kode JavaScript.
  3. API Web Perakitan Web: mendefinisikan API berdasarkan mekanisme Promise untuk meminta dan mengeksekusi sumber daya ".wasm". Format sumber daya WebAssembly dioptimalkan untuk memulai eksekusi tanpa menunggu file diunduh sepenuhnya, yang meningkatkan respons aplikasi web.

Perbedaan antara WebAssembly dan WebAssembly 2.0

Juga, perlu dicatat bahwa ada beberapa perubahan penting dalam WebAssembly 2.0 dibandingkan dengan versi standar pertama:

  • dukungan jenis vektor v128 dan instruksi vektor terkait yang memungkinkan Anda melakukan operasi pada beberapa nilai numerik secara paralel (SIMD, instruksi tunggal, banyak data).
  • Kemampuan untuk mengimpor dan mengekspor variabel global yang bisa berubah, yang memungkinkan pengikatan global untuk nilai sebagai penunjuk tumpukan di C++.
  • Instruksi baru untuk mengonversi float ke int, yang alih-alih melemparkan pengecualian pada hasil yang melimpah, mengembalikan nilai minimum atau maksimum yang mungkin (diperlukan untuk SIMD).
  • Petunjuk untuk memperluas tanda bilangan bulat (menambah kedalaman bit angka dengan menjaga tanda dan nilai).
  • Dukungan untuk mengembalikan beberapa nilai dengan blok dan fungsi (serta meneruskan beberapa parameter ke fungsi).
  • Menerapkan fungsi JavaScript BigInt64Array dan BigUint64Array untuk mengonversi antara jenis JavaScript BigInt dan representasi WebAssembly dari bilangan bulat 64-bit.
  • Dukungan untuk tipe referensi (funcref dan externref) dan pernyataan terkaitnya (pilih, ref.null, ref.func, dan ref.is_null).
  • memory.copy, memory.fill, memory.init, dan instruksi data.drop untuk menyalin data antar wilayah memori dan menghapus wilayah memori.
  • Instruksi untuk akses langsung dan modifikasi tabel (tabel.set, tabel.get, tabel.ukuran, tabel.tumbuh).
  • Kemampuan untuk membuat, mengimpor dan mengekspor beberapa tabel dalam satu modul. Berfungsi untuk menyalin/mengisi tabel dalam mode batch (table.copy, table.init dan elem.drop).

Akhirnya, jika Anda tertarik untuk mengetahui lebih banyak tentangnya, Anda dapat berkonsultasi dengan detailnya Di tautan berikut.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Bertanggung jawab atas data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.