- 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.