17 poin oleh GN⁺ 2025-09-18 | Belum ada komentar. | Bagikan ke WhatsApp
  • Standar Wasm 3.0 resmi diumumkan, mencakup fitur-fitur besar yang disiapkan selama 6–8 tahun
  • Ruang alamat 64-bit, garbage collection, typed reference, tail call, penanganan eksepsi, dan lainnya memudahkan kompilasi bahasa tingkat tinggi ke Wasm
  • Fitur inti baru ini membantu aplikasi berkinerja tinggi, berbagai runtime bahasa, keamanan, dan skalabilitas
  • Cocok untuk kasus penggunaan di ekosistem non-web maupun luar lingkungan web yang perlu menangani kapasitas dan himpunan data lebih besar
  • Sudah didukung di browser web utama, dan akan segera lengkap di mesin mandiri seperti Wasmtime, sehingga Wasm akan makin kokoh sebagai platform eksekusi serbaguna

Ikhtisar rilis Wasm 3.0

  • Versi 3.0 dari standar WebAssembly dirilis pada 17 September 2025
    • Pembaruan besar ini hadir 3 tahun setelah versi 2.0 (selesai pada 2022) yang memperkenalkan instruksi vektor, operasi bulk memory, nilai kembalian jamak, dan tipe referensi sederhana
    • Grup komunitas dan working group W3C terus mengembangkan standar ini, dan rilis kali ini mencakup fitur-fitur besar yang disiapkan selama 6–8 tahun, sehingga skalanya cukup besar
    • Wasm tetap mempertahankan karakter sebagai bahasa tingkat rendah, sambil memperkuat sistem memori dan tipe untuk lebih mendukung kompilasi bahasa tingkat tinggi
  • Fitur-fitur yang dikembangkan setelah versi 2.0 kini telah dimatangkan dan menjadi bagian dari standar Live, dengan dukungan yang meluas di browser web dan mesin mandiri
    • Status dukungan tiap mesin dapat dilacak di halaman status fitur Wasm
    • Diproduksi sebagai versi pertama menggunakan toolchain baru SpecTec untuk meningkatkan keandalan

Perubahan utama dan fitur baru

  • Ruang alamat 64-bit
    • Memori dan tabel dapat dideklarasikan dengan tipe i64
    • Ruang alamat aplikasi Wasm dapat diperluas dari sekitar 4GB hingga batas fisik (secara teoretis 16 exabyte)
    • Untuk web, batas 16GB diterapkan, tetapi di ekosistem non-web ini berguna untuk mendukung aplikasi dan dataset skala besar
  • Multi-memory
    • Dapat mendeklarasikan dan mengakses langsung beberapa objek memori dalam satu modul
    • Dapat dimanfaatkan untuk penggabungan modul, pemisahan ruang alamat, buffering, keamanan, dan lainnya
    • Alat static linking seperti wasm-merge kini dapat digunakan pada semua modul Wasm
  • Garbage collection (GC)
    • Selain linear memory, kini didukung penyimpanan yang dikelola otomatis oleh runtime Wasm
    • Compiler dapat mendeklarasikan langsung layout data seperti tipe struct/array dan integer unboxed
    • Hanya menyediakan blok bangunan dasar untuk manajemen memori; sistem objek tingkat tinggi atau closure tetap dapat dirancang tersendiri sesuai bahasa implementasinya
  • Typed reference
    • Sistem tipe Wasm diperluas agar dapat mendeskripsikan bentuk nilai heap dan referensi fungsi dengan lebih akurat
    • Mendukung subtyping dan rekursi tipe, serta memungkinkan pemanggilan fungsi tidak langsung yang aman tanpa runtime type check lewat instruksi baru call_ref
  • Tail call
    • Mendukung struktur tail call yang langsung mengembalikan hasil tanpa menambah penggunaan ruang stack fungsi yang ada
    • Dapat dimanfaatkan pada bahasa fungsional atau optimisasi internal runtime
  • Penanganan eksepsi
    • Memperkenalkan sistem penanganan eksepsi native di dalam Wasm
    • Menyediakan deklarasi tag dan payload eksepsi, catch opsional, serta exception handler berbasis blok
    • Memungkinkan peningkatan portabilitas dan performa tanpa metode tidak efisien yang sebelumnya harus memutar lewat JS
  • Instruksi vektor relaxed
    • Untuk menyesuaikan perbedaan perangkat keras pada instruksi SIMD, tersedia varian relaxed yang membiarkan detail perilaku sebagian instruksi ditentukan implementasi
    • Berbagai optimisasi dimungkinkan selama masih berada dalam himpunan perilaku yang sah
  • Profil deterministik
    • Bahkan dalam situasi ketika hasil instruksi yang sama bisa tidak deterministik, seperti operasi floating-point atau relaxed SIMD, standar ini mendefinisikan eksekusi deterministik lintas platform
    • Dapat menjamin reproducibility dan portabilitas untuk blockchain, sistem yang dapat diputar ulang, dan lainnya
  • Sintaks custom annotation
    • Menambahkan sintaks anotasi yang bisa dibaca dan ditulis manusia di dalam source code
    • Tidak diinterpretasikan langsung oleh standar, tetapi dapat dimanfaatkan untuk implementasi standar atau ekstensi di masa depan

Konektivitas dengan JavaScript dan kompatibilitas

  • JS string builtins
    • Nilai string JS dapat diteruskan dan dimanipulasi di Wasm sebagai externref
    • Dengan mengimpor fungsi bawaan baru, Wasm dapat langsung menggunakan string JS eksternal dari dalam modul

Manfaat dan prospek Wasm 3.0

  • Menyediakan fondasi penting untuk kompilasi bahasa pemrograman tingkat lanjut ke target Wasm
  • Bahasa-bahasa utama seperti Java, OCaml, Scala, Kotlin, Scheme, Dart dan lainnya juga mulai aktif memanfaatkan fitur GC

Status penyusunan spesifikasi dan distribusi

  • Wasm 3.0 adalah standar pertama yang disusun dengan toolchain baru SpecTec
  • Sebagian besar browser web utama sudah mendukung Wasm 3.0, dan mesin mandiri seperti Wasmtime juga akan segera menyusul sepenuhnya
  • Status dukungan per mesin dapat dilihat di halaman Wasm feature status

Belum ada komentar.

Belum ada komentar.