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

栏目: 编程语言 · Rust · 发布时间: 8年前

内容简介:Rust 1.14提供对WebAssembly的实验性支持以及Rustup 1.0

据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 )关注我们。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

计算机程序设计艺术(第3卷 英文版·第2版)

计算机程序设计艺术(第3卷 英文版·第2版)

Donald E.Knuth / 人民邮电出版社 / 2010-10 / 119.00元

《计算机程序设计艺术》系列被公认为计算机科学领域的权威之作,深入阐述了程序设计理论,对计算机领域的发展有着极为深远的影响。本书是该系列的第3卷,扩展了第1卷中信息结构的内容,主要讲排序和查找。书中对排序和查找算法进行了详细的介绍,并对各种算法的效率做了大量的分析。 本书适合从事计算机科学、计算数学等各方面工作的人员阅读,也适合高等院校相关专业的师生作为教学参考书,对于想深入理解计算机算法的读......一起来看看 《计算机程序设计艺术(第3卷 英文版·第2版)》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

URL 编码/解码
URL 编码/解码

URL 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换