写点什么

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:001706
用户头像

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

关注

评论

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

虚拟主机、WordPress 主机和云主机之间的区别

海拥(haiyong.site)

6月月更

大数据培训Hive到Spark离线计算实践

@零度

spark hive 大数据开发

融云一图看懂:社死的“谭某某”,霸屏的信息安全

融云 RongCloud

web前端培训如何在 H5 网页中实现扫码功能

@零度

前端开发

【直播回顾】Hello HarmonyOS进阶课程第五课——原子化服务

HarmonyOS开发者

HarmonyOS

火遍全网的AI给老照片上色,这里有一份详细教程!

博文视点Broadview

聚焦Arbitrum开发热点技术,一探以太坊的L2未来

TinTinLand

IC 首届全球黑客松奖金高达600 万美元,助力开发者勇闯 Web 3!

TinTinLand

区块链

Kubernetes容器网络及Flannel插件详解

巨子嘉

云原生

架构实战营模块 7 作业

热猫

Microsoft  Office  MSDT 代码执行漏洞

郑州埃文科技

网络安全 漏洞分析 漏洞缓解

CC2530 GPIO口输出配置说明​

DS小龙哥

6月月更

发布一个轻量级的 Elasticsearch 压测工具 - Loadgen

极限实验室

elasticsearch 极限实验室 loadgen 压测工具 esrally

PHP 对接微信公众号订阅消息详细教程

CRMEB

Java中的阻塞队列

急需上岸的小谢

6月月更

Django基础-1

zyf

django 6月月更

DFINITY 明星项目盘点,区块链热门赛道一览

TinTinLand

区块链

专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】

掂掂三生有幸

云原生 Skywalking ,docker 微服务框架 6月月更

互联网拓扑是怎样构成的?又代表了什么?

郑州埃文科技

互联网拓扑 网络空间地图

技术分享| 如何部署安装分布式序列号生成器系统

anyRTC开发者

分布式 后端 音视频 服务器 Tinyid

LLVM之父Chris Lattner:模块化设计决定AI前途,不服来辩

OneFlow

机器学习 深度学习 AI

博睿数据荣获优炫软件产品兼容互认证书和海量数据兼容互认证书

博睿数据

智能运维 博睿数据 产品兼容 数据兼容

场景驱动的特征计算方式OpenMLDB,高效实现“现算先用”

第四范式开发者社区

人工智能 机器学习 数据库 开源 实时计算

2022年SaaS的10个有趣趋势

小炮

实时特征计算平台架构方法论和基于 OpenMLDB 的实践

第四范式开发者社区

机器学习 数据库 AI 特征平台 特征工程

私有化IM即时通讯怎样在保障企业安全下提高效率?

WorkPlus

阿里云架构师梁旭:MES on 云盒,助力客户快速构建数字工厂

阿里云弹性计算

最佳实践 数字化转型 制造业 mes 云盒

Electron框架XSS TO RCE简析

美创科技

漏洞

变量 var const let 的区别

大熊G

JavaScript 前端 前端教程 6月月更

用乐高玩转Scrum,轻松拿CSM证书

ShineScrum

Scrum ScrumMaster CSM 乐高

Python的教程

芯动大师

Python编程 6月月更

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