17 ポイント 投稿者 GN⁺ 2025-09-18 | まだコメントはありません。 | WhatsAppで共有
  • Wasm 3.0 標準が正式に発表され、6〜8年にわたって準備されてきた大規模な機能群が含まれる
  • 64ビットアドレス空間ガベージコレクション型付き参照テールコール例外処理 などにより、高水準言語を Wasm により容易にコンパイルできるようになる
  • 中核となる新機能は、高性能アプリケーション、多様な言語ランタイム、安全性と拡張性に役立つ
  • Web 環境以外の非Webエコシステムでも、より大きな容量やデータセットを扱うケースに適している
  • すでに主要な Web ブラウザでサポートされており、Wasmtime のような独立エンジンでもまもなく完成予定で、Wasm は汎用実行プラットフォームとしてさらに定着していく見込み

Wasm 3.0 リリース概要

  • WebAssembly 標準の 3.0 バージョンが 2025年9月17日にリリース
    • 2.0 バージョン(2022年完了)がベクター命令、バルクメモリ操作、複数戻り値、単純な参照型を導入してから3年ぶりの主要アップデート
    • W3C コミュニティグループとワーキンググループが開発を継続しており、今回のリリースは6〜8年かけて準備された大型機能を含むかなり大規模な変更
    • Wasm は低水準言語としての思想を維持しつつ、メモリと型システムを強化して 高水準言語のコンパイルをよりよく支援
  • 2.0 バージョン以降に開発された機能群が仕上がり、Live 標準として定着し、Web ブラウザと独立エンジンでのサポートが拡大

主な変更点と新機能

  • 64ビットアドレス空間
    • メモリとテーブルを i64 型で宣言できる
    • Wasm アプリケーションのアドレス空間が約4GBから物理的限界まで(理論上は16エクサバイト)拡張可能
    • Web では 16GB 制限が適用されるが、非Webエコシステムでは大規模アプリケーションやデータセットのサポートに有用
  • マルチメモリ
    • 単一モジュール内で 複数のメモリオブジェクトを宣言し、直接アクセスできる
    • モジュール統合やアドレス空間分離、バッファリング、セキュリティなどさまざまな用途がある
    • wasm-merge のような静的リンクツールがすべての Wasm モジュールで使えるようになる
  • ガベージコレクション (GC)
    • 線形メモリに加えて、Wasm ランタイムが自動管理するストレージをサポート
    • コンパイラは struct/array 型や unboxed 整数などのデータレイアウトを直接宣言する
    • メモリ管理の基本的なビルディングブロックのみを提供し、高水準オブジェクトシステムやクロージャは実装言語ごとに個別設計できる
  • 型付き参照
    • Wasm 型システムが拡張され、ヒープ値の形状と関数参照をより正確に記述できる
    • サブタイピングと型再帰をサポートし、新しい call_ref 命令によって ランタイム型チェックなしで安全な間接関数呼び出しが可能
  • テールコール
    • 既存関数のスタック領域を追加消費せず、即座に戻る tail call 構造をサポート
    • 関数型言語やランタイム内部最適化などに活用できる
  • 例外処理
    • Wasm 内でネイティブの 例外処理システムを導入
    • 例外タグとペイロード宣言、選択的 catch、ブロック単位の例外ハンドラを提供
    • これまで JS で迂回していた非効率な方法を使わずに 移植性と性能を改善できる
  • relaxed ベクター命令
    • SIMD 命令のハードウェア差異に対応するため、一部命令の詳細動作を実装の自由に委ねる relaxed variant を提供
    • 合法的な動作集合の範囲内で多様な最適化が可能
  • 決定論的プロファイル
    • 同一命令でも結果が非決定的になりうる状況(浮動小数点演算、relaxed SIMD など)においても、プラットフォーム間で決定論的な実行を定義
    • ブロックチェーンや再現可能なシステムなどで 再現性と移植性を保証できる
  • カスタムアノテーション構文
    • ソースコード内で人間が読み書きできる アノテーション構文を追加
    • 標準が直接解釈するものではないが、今後の標準や拡張実装に活用できる

JavaScript 連携と互換性

  • JS string builtins
    • JS の文字列値を externref として Wasm に渡して操作できる
    • 新しい組み込み関数を import することで、Wasm 内部から直接外部の JS 文字列を使える

Wasm 3.0 の有用性と展望

  • 高級プログラミング言語の Wasm ターゲットコンパイルに不可欠な基盤を提供
  • JavaOCamlScalaKotlinSchemeDart など主要言語でも GC 機能の活用が本格化

仕様策定と配布状況

  • Wasm 3.0 は新しい SpecTec ツールチェーンで初めて作成された標準
  • 大半の 主要 Web ブラウザですでに Wasm 3.0 をサポートしており、Wasmtime などのスタンドアロンエンジンもまもなく完成予定
  • Wasm feature status ページで各エンジンごとの対応状況を確認可能

まだコメントはありません。

まだコメントはありません。