SEARU.ORG
当前位置:SEARU.ORG > Linux 新闻 > 正文

WebAssembly浏览器预览版收集社区反馈

WebAssembly的开发已经进入浏览器预览阶段,这是标准化路上的一个重要里程碑。

在Chrome、Edge和Firefox中,用户可以开启一个WebAssembly的预览版,它使用 WebAssembly社区小组过去一直在研发的二进制格式的“候选发布版本”。另外,存在一份开发人员指引,它简要地介绍了用C语言创建一个WebAssembly程序、编译并发布结果到浏览器的步骤。

与之前的实验性支持预览版(experimental support preview)不同,本浏览器预览版是浏览器兼容的并且稳定的。浏览器厂商正积极鼓励用户使用它以收集相关反馈。

在微软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年第一季度结束,之后将会准备一份规格说明书草案。再之后,厂商将能默认开启这项特性,不再用功能标志(feature flag)隐藏它了。Mozilla的Luke Wagner如果计划进展顺利,2017年3月份发布的Firefox 52将默认开启该特性。

值得注意的是,苹果和基于WebKit的Safari浏览器明显不在该浏览器厂商之列。该公司尽管一直很低调,但是也在研发该特性Brendan Eich说“在苹果发布之前,关于苹果的一切进展都是推测”,但是“苹果热衷于WebAssembly,一切看起来都在正轨上”。WebAssembly社区小组的谷歌代表兼联合组长Ben Titzer苹果确实“派遣了代表参加我们举办的面对面峰会”,“他们确实好像已经开始研发实现了,但是我们应该谨慎,不要曲解或者过度解读”。

查看英文原文:https://www.infoq.com/news/2016/11/webassembly-browser-preview

未经允许不得转载:SEARU.ORG » WebAssembly浏览器预览版收集社区反馈

赞 (0)
分享到:更多 ()

评论 0