WebAssemblyの開発はブラウザプレビューの段階に達した。これは標準化に向けた道のりの中で重要なマイルストーンとなる。
Chrome, Edge, そしてFirefoxにおいて、ユーザはWebAssembly Community Groupが作業を進めているバイナリフォーマットの"リリース候補"を使用したWebAssemblyのプレビュー版を有効にすることができる。加えて、開発者向けのガイドが準備され、CによりWebAssemblyプログラムを作成し、コンパイルし、ブラウザで結果を確認する一連のステップをたどることができる。
以前の実験的サポートプレビューとは異なり、このブラウザプレビューはブラウザ間で互換であり安定している。各ブラウザベンダはフィードバックを収集するためにこのプレビューの使用を精力的に推進している。
Microsoft Edgeのブラウザプレビューの発表では、プログラムマネージャーであるLimin Zhu氏はコンパイル結果の例を挙げた。
この例において、C++の階乗を計算する関数
int factorial(int n)
{
if (n == 0)
return 1;
else
return n * factorial(n-1);
}
はこのようなWebAssemblyにコンパイルされる。
binary | text
20 00 | get_local 0
42 00 | i64.const 0
51 | i64.eq
04 7e | if i64
42 01 | i64.const 1
05 | else
20 00 | get_local 0
20 00 | get_local 0
42 01 | i64.const 1
7d | i64.sub
10 00 | call 0
7e | i64.mul
0b | end
このバイナリフォーマットをリリース候補と呼んでいるにも関わらず、これはプロダクション向けの使用の準備が出来ておらず変更される予定である。WebAssemblyのロードマップでは、開発者に対して以下のように警告がされている。
開発者は、ブラウザプレビューとWebAssemblyの公開開始の間に、最低一回はツールチェーンとバイナリを更新する必要のある破壊的変更が行われる予定があることに注意するべきである。
プロジェクトは、ドラフト仕様が準備された後の2017年第一四半期のどこかで区切りを迎える予定である。この区切りが付いた時、各ベンダは機能フラグで隠蔽せずデフォルトでこの機能を有効にすることができるようになる。MozillaのLuke Wagner氏は、このスケジュール通り進めば、2017年3月のFirefox52ではデフォルトでこの機能を持つようになると述べた。
このブラウザのリストに目立って欠けているのはAppleであり、WebKitで構築されたAppleのSafariである。沈黙を保ってはいるが、彼らは開発中である。Brendan Eich氏はAppleの進捗を"彼らが出荷するまでは全て推測である"と述べているが、"彼ら(Apple)はWebAssemblyを熱望しており、全ては可能な限り軌道に乗っているように思える"とも述べている。Googleの代表者でありWebAssemblyコミュニティの副議長であるBen Titzer氏はAppleは"(稀に開催される)人が集まる会談に代表を送り込んで"おり、"彼らは実装を開始したように思われるが、私たちは彼らが言ってもいないことを口にしたり、内容を曲解しないよう気をつけている"と述べている。
Rate this Article
- Editor Review
- Chief Editor Action