< 返回版块

PsiACE 发表于 2022-08-12 00:00

Rust 1.63.0 stable 正式发布

Rust 1.63.0 stable 正式发布,赶快升级到最新稳定版本体验 Rust 带给你的强劲动力吧 :)

rustup update stable

简单看看有哪些值得关注的新特性吧:

  • scoped threads 允许线程借用局部变量,而不仅仅是静态变量。
  • 为原始文件描述符/句柄提供 I/O 安全的包装器类型,如 BorrowedFdOwnedFd ,允许使用这些类型来编码所有权语义。
  • Mutex::newRwLock::newCondvar::new 都是 const ,可以将这些类型用作静态变量。
  • 完成向非词法生命周期(non-lexical lifetimes)的迁移,完全删除了以前的词法借用检查器。

Announcing Rust 1.63.0: https://blog.rust-lang.org/2022/08/11/Rust-1.63.0.html

用 Rust 重写 Svelte 编译器

pintariching 试图使用 Rust 来重写 Svelte 编译器,过去,该编译器是由 TypeScript 实现的。

GitHub - pintariching/rustle: https://github.com/pintariching/rustle

This Week in Rust 455

新一期的 Rust 周报速递发布,快来看看有哪些内容你曾经关注过 :)

This Week in Rust 455:https://this-week-in-rust.org/blog/2022/08/10/this-week-in-rust-455/


From 日报小组 PsiACE

社区学习交流平台订阅:

评论区

写评论
苦瓜小仔 2022-08-12 12:18

Rust 从 2018 版本开始就开始让 NLL 处于迁移模式(新旧借用检查系统并存),现在只是关闭迁移模式,完全使用 NLL(只使用新的,停止使用旧的)。

好处就是让借用检查更符合“人的直觉”,更加 ergonomic。

坏处是增加编译器复杂度(以及潜在的一些 corner case)。

NLL 概念不是面向大多数 Rust 使用者,因为实质上是 Rust 对借用检查系统的改进(也就是编译器内部的改进)。

但是,我觉得所有使用者应该对它有所了解,我觉得有必要熟悉的链接(我翻译的中文):

一个典型的 NLL 错误是三段式描述的(这是由 RFC 2094 定义的):

首先,产生了值的借用。

然后,产生了使引用无效的操作。

最后,在引用无效后,下一次该引用被使用了。

error[E0506]: cannot write to `x` while borrowed
 --> <anon>:4:5
   |
 3 |     match &mut x {
   |           ------ (mutable) borrow of `x` occurs here 
 4 |         Some(i) => {
 5 |              x = None;
   |              ^^^^^^^^ write to `x` occurs here, while borrow is still active
 6 |              *i += 1;
   |              -- borrow is later used here
   |

--
👇
zzhaolei: > 完成向非词法生命周期(non-lexical lifetimes)的迁移,完全删除了以前的词法借用检查器

有人方便简要说明一下这个改动的好处是什么吗,谢谢

zzhaolei 2022-08-12 09:41

完成向非词法生命周期(non-lexical lifetimes)的迁移,完全删除了以前的词法借用检查器

有人方便简要说明一下这个改动的好处是什么吗,谢谢

1 共 2 条评论, 1 页