Rust 1.27.2 发布公告

2018年7月20日 · Rust 核心团队

Rust 团队很高兴地宣布 Rust 的新版本 1.27.2。 Rust 是一种专注于安全性、速度和并发性的系统编程语言。

如果您通过 rustup 安装了以前版本的 Rust,则获取 Rust 1.27.2 非常简单,只需执行以下命令:

$ rustup update stable

如果您还没有安装 rustup,您可以从我们网站上的相应页面获取 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 生成补丁版本的能力大大提高。 这意味着编译器和核心团队进行补丁版本发布所需的投入大大减少,这也使得补丁版本发布更有可能发生。

当前的借用检查器已经存在多年,并且开始显示其老旧。 更好、更精确的借用检查器的工作正在进行中,它已经检测到了所有这些错误。 这项工作计划在接下来的几个版本中稳定下来,所以请期待很快听到更多关于它的消息。

总而言之,由于缺乏对当前借用检查器的良好维护以及发布能力的提高,使得我们能够更快速、更频繁地发布补丁版本。