17 puan yazan GN⁺ 2025-09-18 | Henüz yorum yok. | WhatsApp'ta paylaş
  • Wasm 3.0 standardı resmen duyuruldu ve 6-8 yıllık hazırlığın ürünü olan büyük ölçekli özellikler içeriyor
  • 64 bit adres alanı, çöp toplama, typed reference'lar, tail call, istisna işleme gibi özelliklerle yüksek seviyeli dillerin Wasm'a daha kolay derlenmesini sağlıyor
  • Temel yeni özellikler; yüksek performanslı uygulamalar, çeşitli dil çalışma zamanları, güvenlik ve genişletilebilirlik açısından fayda sağlıyor
  • Web ortamının dışında, web dışı ekosistemlerde de daha büyük kapasite ve veri kümeleriyle çalışılması gereken kullanım senaryolarına uygun
  • Halihazırda başlıca web tarayıcıları tarafından destekleniyor; Wasmtime gibi bağımsız motorlarda da yakında tamamlanacak ve Wasm böylece genel amaçlı bir yürütme platformu olarak daha da sağlamlaşacak

Wasm 3.0 sürümüne genel bakış

  • WebAssembly standardının 3.0 sürümü 17 Eylül 2025'te yayımlandı
    • 2.0 sürümünün (2022'de tamamlandı) vektör komutları, bulk memory işlemleri, çoklu dönüş değerleri ve basit referans türlerini getirmesinden 3 yıl sonraki büyük güncelleme
    • W3C topluluk grubu ve çalışma grubu geliştirmeyi sürdürürken, bu sürüm 6-8 yıldır hazırlanan büyük özellikleri içeren oldukça kapsamlı bir değişiklik paketi sunuyor
    • Wasm, düşük seviyeli dil anlayışını korurken bellek ve tür sistemini güçlendirerek yüksek seviyeli dil derlemeyi daha iyi destekliyor
  • 2.0 sürümünden sonra geliştirilen özellikler tamamlanarak Live standardı haline geldi ve web tarayıcılarıyla bağımsız motorlardaki destek genişliyor
    • Wasm özellik durumu sayfası üzerinden her motorun destek durumu takip edilebiliyor
    • Yeni SpecTec araç zinciri kullanılarak üretilen ilk sürüm olması sayesinde güvenilirlik arttı

Başlıca değişiklikler ve yeni özellikler

  • 64 bit adres alanı
    • Bellek ve tablolar i64 türüyle tanımlanabiliyor
    • Wasm uygulamalarının adres alanı yaklaşık 4 GB'den fiziksel sınırlara kadar (teorik olarak 16 eksabayt) genişleyebiliyor
    • Web tarafında 16 GB sınırı uygulanıyor, ancak web dışı ekosistemlerde büyük uygulamaları ve veri kümelerini desteklemek için faydalı
  • Çoklu bellek
    • Tek bir modül içinde birden fazla bellek nesnesi tanımlanıp bunlara doğrudan erişilebiliyor
    • Modül birleştirme, adres alanı ayrımı, arabelleğe alma ve güvenlik gibi çeşitli kullanım alanları sunuyor
    • wasm-merge gibi statik bağlama araçları artık tüm Wasm modüllerinde kullanılabilecek
  • Çöp toplama (GC)
    • Doğrusal belleğin yanında, Wasm çalışma zamanının otomatik yönettiği depolama alanı desteği geliyor
    • Derleyiciler struct/array türleri ve unboxed tamsayılar gibi veri yerleşimlerini doğrudan tanımlayabiliyor
    • Yalnızca bellek yönetiminin temel yapı taşlarını sağlıyor; yüksek seviyeli nesne sistemleri veya closure'lar ise uygulama diline göre ayrı ayrı tasarlanabiliyor
  • Typed reference'lar
    • Wasm tür sistemi genişletilerek heap değerlerinin biçimi ve fonksiyon referansları daha doğru şekilde ifade edilebiliyor
    • Alt türleme (subtyping) ve tür özyinelemesi destekleniyor; yeni call_ref komutuyla çalışma zamanında tür kontrolü olmadan güvenli dolaylı fonksiyon çağrısı yapılabiliyor
  • Tail call
    • Mevcut fonksiyonun yığın alanını ek olarak kullanmadan, doğrudan dönüş yapan tail call yapısı destekleniyor
    • İşlevsel dillerde veya çalışma zamanı içi optimizasyonlarda kullanılabiliyor
  • İstisna işleme
    • Wasm içinde yerel bir istisna işleme sistemi sunuluyor
    • İstisna etiketleri ve payload tanımı, seçmeli catch ve blok düzeyinde istisna işleyicileri sağlanıyor
    • Daha önce JS üzerinden dolaylı şekilde yapılan verimsiz yöntemlere gerek kalmadan taşınabilirlik ve performans iyileştirilebiliyor
  • Relaxed vektör komutları
    • SIMD komutlarındaki donanım farklılıklarına uyum sağlamak için, bazı komutların ayrıntılı davranışını uygulama tarafına bırakan relaxed varyantlar sunuluyor
    • Yasal davranış kümesi içinde çeşitli optimizasyonlar yapılabiliyor
  • Deterministik profil
    • Aynı komutun sonucunun belirlenimci olmadığı durumlarda (kayan nokta işlemleri, relaxed SIMD vb.) bile platformlar arası deterministik yürütme tanımlanıyor
    • Blokzincirler, yeniden üretilebilir sistemler gibi alanlarda yeniden üretilebilirlik ve taşınabilirlik sağlanabiliyor
  • Özel anotasyon sözdizimi
    • Kaynak kod içinde insanlar tarafından okunup yazılabilen anotasyon sözdizimi ekleniyor
    • Standart bunları doğrudan yorumlamıyor, ancak gelecekte standartlar ve uzantı uygulamalarında kullanılabilecek

JavaScript bağlantısı ve uyumluluk

  • JS string builtins
    • JS string değerleri externref olarak Wasm'a aktarılıp işlenebiliyor
    • Yeni yerleşik fonksiyonlar import edilerek, Wasm içinden doğrudan harici JS string'leri kullanılabiliyor

Wasm 3.0'ın faydaları ve görünümü

  • Gelişmiş programlama dillerinin Wasm hedefli derlemesi için gerekli temeli sağlıyor
  • Java, OCaml, Scala, Kotlin, Scheme, Dart gibi önemli diller de GC özelliğini aktif biçimde kullanmaya başladı

Spesifikasyonun hazırlanması ve dağıtım durumu

  • Wasm 3.0, yeni SpecTec araç zinciriyle üretilen ilk standart oldu
  • Başlıca web tarayıcılarının çoğu Wasm 3.0'ı zaten destekliyor; Wasmtime gibi bağımsız motorlarda da destek yakında tamamlanacak
  • Wasm özellik durumu sayfasından motor bazında destek durumu görülebilir

Henüz yorum yok.

Henüz yorum yok.