时隔16年Jeff Barr重返10.23-25 QCon上海站,带你看透AI如何重塑软件开发! 了解详情
写点什么

Rust 1.14 提供对 WebAssembly 的实验性支持以及 Rustup 1.0

  • 2016-12-29
  • 本文字数:956 字

    阅读完需:约 3 分钟

据 Rust 核心开发团队在博客中所写,Rust 1.14 中引入了实验性的新WebAssembly 编译目标,并扩展了模式识别操作符“…”的语法。此外,Rustup 现已达到稳定,成为由源文件构建Rust 的推荐方法。

WebAssembly 是一种可移植的底层字节码,能够使用多数平台具有的通用硬件能力让执行达到近原生的速度。Rust 现在使用了新的“wasm32-unknown-emscripten”编译目标支持 WebAssembly,开发人员可以通过执行如下的命令,将 Rust 编译为 WebAsembly:

复制代码
$ rustup target add wasm32-unknown-emscripten
$ echo 'fn main() { println!("Hello, Emscripten!"); }' > hello.rs
$ rustc --target=wasm32-unknown-emscripten hello.rs

运行如上的命令将输出 Node 可运行的 hello.js 文件。正如前面所提及的,现在 Rust 对 WebAssembly 支持依然是实验性的,部分Rust Runtime 依然完全不可用,例如Rust 的I/O 栈。WebAssembly 的支持需要 emscripten ,可运行如下命令进行安装:

复制代码
curl -O https://s3.amazonaws.com/mozilla-games/emscripten/releases/emsdk-portable.tar.gz
tar -xzf emsdk-portable.tar.gz
source emsdk_portable/emsdk_env.sh
emsdk update
emsdk install sdk-incoming-64bit
emsdk activate sdk-incoming-64bit

在语言前端上,Rust 1.0扩展了模式匹配操作符“…”的语法,实现了对使用了该操作符的部分上下文进行选择性的忽略。例如,现可使用如下代码正确地匹配 Point 元组中的 x 并忽略其中的 y 和 z 元素:

复制代码
struct Point(i32, i32, i32);
let p = Point(0, 1, 2);
match p {
Point(x, ..) => println!("x is {}", x),
}

先前“…”操作符只能用做忽略全部元素,例如:

复制代码
let p = Point(0, 1, 2);
match p {
Point(..) => println!("found a point"),
}

Rust 1.14 的另一个显著特性是 Rustup 1.0 ,它现在已经相当稳定。Rustup 是一个命令行应用,可为一些支持平台下载不同版本的 Rust 工具链(即编译器 rustc 和标准库)并做切换。

Rust 1.14 的发布中具有超过 1200 个补丁,详细信息参见官方发行说明

查看英文原文: Rust 1.14 Brings Experimental WebAssembly Support and Rustup 1.0


感谢冬雨对本文的审校。

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

2016-12-29 18:002331
用户头像

发布了 227 篇内容, 共 84.4 次阅读, 收获喜欢 28 次。

关注

评论

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

京东商品详情数据接口(app)Python

tbapi

京东API接口 京东商品详情接口 京东商品数据采集

以 AI 升级自我 | Kyligence 荣获多个奖项及榜单认可

Kyligence

数据分析 组织运营

深入了解如何对IPA包进行有效的混淆处理

透过 Footprint 的聚合视图洞察加密世界的全貌

Footprint Analytics

区块链 数据分析 加密货币

纯血鸿蒙来了,鸿蒙App开发有可能提速吗?

FinFish

鸿蒙系统 小程序化 小程序技术 鸿蒙Next 纯血鸿蒙

SpringBoot 整合多数据源的事务问题

不在线第一只蜗牛

数据库 spring Spring Boot 开发语言

香港服务器出租的优势分析:为何成为企业首选?

一只扑棱蛾子

香港服务器

什么是信创业态支持?支持信创的数据库防水坝哪家好?

行云管家

数据库 信创 堡垒机 国产化 数据库防水坝

库存智慧:数字化管理下的服装企业如何实现库存的精准优化

第七在线

字节跳动新一代云原生消息队列实践

字节跳动云原生计算

云原生 消息列队

区块链游戏解说:Sunflower Land 是什么

Footprint Analytics

区块链游戏 NFT 链游

观测云产品更新 | 告警策略、智能监控、场景图表、查看器等

观测云

智能监控 可视化图表

质量保障:成本和价值的思考

老张

软件测试 研发效能 质量保障

跨平台销售策略:通过API同步不同市场的商品数据

Noah

引领AI创意教育新浪潮,瑞云AIGC实训平台解决方案来了

3DCAT实时渲染

AIGC实训教学

智能预测:数字化时代的服装企业如何实现准确的需求规划

第七在线

BRC20支持的Dapp:开创去中心化应用的未来

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

Java Chassis 3技术解密:与Spring Cloud的互操作

Java 华为云

现在好用的低代码平台有哪些?JNPF算一个

互联网工科生

低代码 JNPF

华为云CodeArts Snap荣获信通院优秀大模型案例及两项荣誉证书

人工智能 软件开发 华为云

4个大语言模型训练中的典型开源数据集

华为云开发者联盟

人工智能 华为云 开源数据集 华为云开发者联盟 大语言模型

Rust 1.14提供对WebAssembly的实验性支持以及Rustup 1.0_语言 & 开发_Sergio De Simone_InfoQ精选文章