Rust 团队很高兴宣布 Rust 的新版本 1.27.2。Rust 是一种系统编程语言,专注于安全、速度和并发。
如果您已通过 rustup 安装了先前版本的 Rust,获取 Rust 1.27.2 就像
$ rustup update stable
如果您还没有,您可以从我们网站上的相应页面获取 rustup
,并查看 GitHub 上1.27.2 的详细发布说明。
1.27.2 稳定版中的内容
此补丁版本修复了 match
表达式借用检查器验证中的一个错误。此错误是在 1.27.1 中引入的,用于修复match 人体工程学的另一个错误。
fn transmute_lifetime<'a, 'b, T>(t: &'a (T,)) -> &'b T {
match (&t, ()) {
((t,), ()) => t,
}
}
fn main() {
let x = {
let y = Box::new((42,));
transmute_lifetime(&y)
};
println!("{}", x);
}
1.27.2 将拒绝以上代码。
对 match 人体工程学功能的众多补丁的担忧
用户对当前借用检查器在各种 Rust 论坛上修复 match 人体工程学验证错误的补丁版本发布频率表示担忧。补丁版本发布频率增加有两个主要原因:显着更高的带宽和当前使用的借用检查器的年龄。
随着发布团队的成立,Rust 生成补丁版本的能力大大提高。这意味着编译器和核心团队为发布补丁版本所需的投资大大减少,这也使得发布补丁版本更有可能发生。
当前的借用检查器已经存在多年,并且开始显露出它的年龄。一个更好、更精确的借用检查器的工作正在进行中,它已经检测到所有这些错误。这项工作计划在接下来的几个版本中稳定下来,所以期待很快听到更多关于它的消息。
总而言之,当前借用检查器缺乏良好的维护以及发布能力的提高,使得我们能够以更快速、更频繁的方式发布补丁版本。