「WebAssembly 2.0」に関する最初のワーキングドラフトが公開。整数における符号拡張命令、関数からの複数の戻り値などを拡張

W3Cの WebAssembly Working Groupは、「WebAssembly 2.0」に関する最初のワーキングドラフト「Web Assembly First Public Working Draft」を公開しました

WebAssemblyは、Webブラウザ上でネイティブコードに近い実行速度で高速に実行できるバイナリフォーマットとして仕様策定と実装が始まりました。2017年には主要なWebブラウザでのサポートが実現し、2019年12月にはW3Cの勧告に到達しました。

今回公開されたWebAssembly 2.0のワーキングドラフトは、現在のWebAssemblyをさらに機能拡張するものです。

WebAssembly 2.0の主な変更点

WebAssmbly 2.0はW3Cのプロセスによる議論などにより仕様策定が進められる予定です。

現時点でWebAssembly 2.0の追加機能としてどのようなものが提案されているかは、Change Historyのページから参照することができます。

fig

このページによると、以下が現時点での変更点となっています。

  • Sign extension instruntions(整数における符号拡張命令)
  • Non-trapping float-to-int conversions(浮動小数点型から整数型への変換時のトラップ処理なし)
  • Multiple values(関数が複数の値を返せる)
  • Reference types(参照型の追加)
  • Table instructions(参照型を要素に持つテーブル型に対する操作命令)
  • Multiple tables (複数テーブルの処理)
  • Bulk memory and table instructions (一定範囲のメモリやテーブルに対する操作)
  • Vector instructions(並行処理が可能なベクトル処理命令の追加)