Rust 1.47.0 发布

日前,Rust开发团队发布Rust的新版本1.47.0。Rust是一种编程语言,它使每个人都可以构建可靠且高效的软件。

Rust 1.47.0 发布

1.47.0版本功能

Rust 1.47.0 stable 版本添加了一个期待已久的标准库功能,但是该版本中没有包含任何新的语言功能。它主要是语言可用性方面的改善,库的稳定和定义及工具链的改善。

数组Trait

此前Rust没有办法对整数值进行泛型。这会导致数组出现问题,因为数组的类型部分包含整数。[T; N]表示类型为T,长度为N的数组。因为没有通用的方法N,所以必须为每个需要N长度数组手动实现阵列特征。对于标准库,最多32个N。

开发团队一直在研究一种称为"常量通用"的功能,使用该功能将使N可以通用。由于目前还没有稳定const泛型,对该功能不在深入讨论。该功能的核心已在最新版本的编译器中实现了,对使用该标准库在任意长度的数组上实现特征的标准库都可以接受。相对比而言,在Rust 1.46下面的代码会抛出一个错误:

fn main() {
let xs = [0; 34];
println!("{:?}", xs);
}


Rust 1.47.0 发布

而在Rust 1.47中,将能正确输出组数。

Rust 1.47.0 发布

该功能使数组将更加有用,当然只有等到const泛型功稳定下来,类库才能针对自己的特征进行实现。目前尚无稳定const泛型的推出日期。

回溯简洁模式

在Rust 1.18版本中对rustc在panic上显示的回溯进行了一些更改。回溯中的很多信息,在大多数时候都没有用。在Rust 1.47.0中,对此做了优化,现在只提供必要的信息,比如下面的程序xxtes.rs:

fn main() {
panic!();
}

编译后,用RUST_BACKTRACE=1 ./xxtest执行,之前版本回溯结果会非常繁琐

Rust 1.47.0 发布

在Rust 1.47.0中,回溯将会十分简洁:

Rust 1.47.0 发布

这样一来,就可以更轻松地了解Panic的真正原因。如果要查看所有详细的回溯内容,可以通过设置RUST_BACKTRACE=full来查看。

LLVM 11

LLVM底层已经升级到LLVM 11。编译器仍然支持使用早于8的LLVM版本进行编译,但是默认情况下,为11。

Rust 1.47.0 发布

Windows control-flow-guard选项

rustc现在支持 -C control-flow-guard,该选项将在Windows上打开Control Flow Guard。其他平台会自动忽略此标志。

Rust 1.47.0 发布

基本库变化

此外,该版本还稳定了9个新的API:

Ident::new_raw
Range::is_empty
RangeInclusive::is_empty
Result::as_deref
Result::as_deref_mut
Vec::leak
pointer::offset_from
f32::TAU
f64::TAU

并提供了以下以前稳定的API const:

适用于所有NonZero整数的新的new方法。

适用于所有整数的checked_add,checked_sub,checked_mul,checked_neg,checked_shl,checked_shr,saturating_add,saturating_sub,和saturating_mul 方法。

适用于所有符号整数的checked_abs,saturating_abs,saturating_neg,和signum方法。

char和u8类型的is_ascii_alphabetic,is_ascii_uppercase,is_ascii_lowercase,is_ascii_alphanumeric,is_ascii_digit,is_ascii_hexdigit,is_ascii_punctuation,is_ascii_graphic,is_ascii_whitespace,is_ascii_control等方法。

有关更多信息,参见详细的发行说明。

其他变化

Rustdoc已经支持Ayu主题。

Rust 1.47.0 发布

Rust 1.47.0发行版中还有带来了Cargo和Clippy方面更改,具体请参考官方详细文档。

升级更新

如果你通过rustup安装过Rust,那么就可以一键升级到最新的Rust 1.47.0:

rustup update stable
Rust 1.47.0 发布

如果升级包下载比较慢,可以设置使用国内镜像站,比如清华镜像TUNA:

Rust 1.47.0 发布

也可以从rust官网或者github仓库下载Rust,详细安装和问题文档可以查看GitHub仓库(/github:/rust-lang/rust)相关说明和问题。

展开阅读全文

页面更新:2024-05-02

标签:整数   数组   仓库   简洁   长度   选项   有用   特征   稳定   版本   类型   功能   标准   方法   详细   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top