写点什么

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

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

    阅读完需:约 3 分钟

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

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

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

关注

评论

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

第十二周 作业1

Yangjing

极客大学架构师训练营

ARTS打卡 第26周

引花眠

微服务 ARTS 打卡计划 springboot

ARTS打卡 第27周

引花眠

微服务 ARTS 打卡计划 springboot

第十二周 学习总结

熊桂平

极客大学架构师训练营

第十二周 作业

熊桂平

极客大学架构师训练营

与前端训练营的日子 --Week07

SamGo

学习

架构第12周总结

Geek_Gu

极客大学架构师训练营

第十二周 作业2

Yangjing

极客大学架构师训练营

架构师训练营第十二周学习笔记

一马行千里

架构师训练营 1 期 - 第 十二周作业(vaik)

行之

极客大学架构师训练营

SpringBoot系列(6)- 测试

引花眠

spring springboot

第三周总结

胡益

架构师训练营 2 期 Week08 总结

架构师训练营 2 期 Week08 作业

Week 12 學習總結

Judyyy

第八周作业总结

hunk

极客大学架构师训练营

week8-作业二-根据当周学习情况,完成一篇学习总结

未来已来

架构师训练营第 1 期 -- 第十二周学习总结

发酵的死神

极客大学架构师训练营

架构师训练营第 1 期 - week12 - 作业

lucian

极客大学架构师训练营

架构师训练营 1 期 - 第 十二周总结(vaik)

行之

极客大学架构师训练营

ARTS打卡 第25周

引花眠

微服务 ARTS 打卡计划 springboot

Week_12 总结

golangboy

极客大学架构师训练营

第12周作业

paul

week8-作业一

未来已来

第3周学习总结

Binary

极客大学架构师训练营

数据应用(一)

wing

极客大学架构师训练营

第十二周 数据应用(一)总结

蓝黑

极客大学架构师训练营

架构师训练营 - 第12周

袭望

架构第12周作业

Geek_Gu

极客大学架构师训练营

Week 12 作業

Judyyy

第十二周 架构方法学习总结 —— 数据应用

兵长

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