QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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

  • 2016-11-21
  • 本文字数:1064 字

    阅读完需:约 3 分钟

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


感谢足下对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-11-21 18:001751
用户头像

发布了 33 篇内容, 共 11.5 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

【安全】揭秘小白如何从0到1逆袭成为安全工程师

网络安全学海

网络安全 安全 信息安全 渗透测试

WPF|快速添加新手引导功能(支持MVVM)

沙漠尽头的狼

C# WPF 新手引导

下篇:技术 Leader 的思考方式

阿里巴巴中间件

阿里云 中间件 技术分享

在线HTML转Javascript工具

入门小站

工具

MSVC编译环境介绍

Loken

音视频 5月月更

FactoryMethodPattern-工厂方法模式

梁歪歪 ♚

设计模式

Vue框架学习笔记【day二】

恒山其若陋兮

5月月更

Angular 项目里使用 scss 文件的一些技巧

汪子熙

typescript 前端 前端开发 angular 5月月更

Crypto们纷纷聚焦“Building platonic”,PlatoFarm是解决方案吗?

股市老人

「AuthTalk」今晚 7 点直播|从制造到“智造”,探索制造企业破局之道

Authing

云原生 身份云 制造业 Idaas

从原理到操作,让你在 Apache APISIX 中代理 Dubbo3 服务更便捷

阿里巴巴中间件

阿里云 开源 云原生 dubbo

2.4 航线图介绍

Geek_古藤模根

图数据库实战 Gremlin

架构实战营-模块2作业

Elvis FAN

Docker下RabbitMQ四部曲之四:高可用实战

程序员欣宸

Java Docker Docker-compose RabbitMQ 5月月更

密码学系列之:X.690和对应的BER CER DER编码

程序那些事

密码学 程序那些事 5月月更

BuilderPattern-建造者模式

梁歪歪 ♚

设计模式

RocketMQ 5.0: 存储计算分离新思路

阿里巴巴中间件

阿里云 开源 云原生 消息队列 Apache RocketMQ

跨平台应用开发进阶(十八) :全局异常日志处理方案探究

No Silver Bullet

5月月更 异常日志 处理方案探究

微信朋友圈高性能架构设计

地下地上

架构实战营

PrototypePattern-原型模式

梁歪歪 ♚

设计模式

朋友圈架构设计

intelamd

OKALEIDO简化玩家进入NFT的门槛,做NFT界的UNISWAP

股市老人

Jenkins Agent 的低成本高弹性实践

玄月九

Kubernetes jenkins 弹性 降本 Kaniko

上篇:技术架构的设计方法

阿里巴巴中间件

阿里云 中间件 技术分享 技术思考

研发效能团队规模、职能划分和优劣势分析概述(第一篇)

laofo

DevOps cicd 研发效能 组织架构 平台建设

SingletonPattern-单例模式

梁歪歪 ♚

设计模式

AbstractFactoryPattern-抽象工厂模式

梁歪歪 ♚

设计模式

linux之curl使用技巧

入门小站

在线字符或文本转二进制工具

入门小站

工具

西昊智能家具2022新品发布,硬实力为健康撑腰

Geek_2d6073

TreeSet源码分析

zarmnosaj

5月月更

WebAssembly浏览器预览版收集社区反馈_JavaScript_David Iffland_InfoQ精选文章