首页
学习
活动
专区
圈层
工具
发布

Rust 改进版借用检查器 Polonius Alpha 进入夜间版本测试

Rust 团队近日宣布,已在夜间发布版本中启用 Polonius Alpha 借用检查器进行测试,并预计于今年晚些时候完成 Polonius Alpha 的正式稳定化工作。

这一消息于 8 月 4 日通过官方博客发布。Rust 团队成员 Jack Huey 在文章中表示,Polonius Alpha 目前已无已知遗留问题,整体性能表现也基本满足稳定化要求。

在夜间版本中启用 Polonius Alpha 进行测试,主要目的是排查严重的性能回退问题、公式设计层面的健全性缺陷,以及需要改进的诊断信息。Huey 表示,相关问题可通过 GitHub 或 Zulip 平台进行反馈。

如需禁用 Polonius Alpha 并切换回稳定版 NLL 借用检查器,开发者可通过以下方式实现:向 rustc 传递 -Zpolonius=off 参数、设置 RUSTFLAGS=-Zpolonius=off 环境变量,或在项目的 .cargo/config.toml 配置文件中添加相应配置。

Polonius 借用检查器自 2018 年起开始研发。2023 年,Huey 提出了一种新的 Polonius 借用检查器方案,该方案仅需对现有 NLL(非词法生命周期)实现进行最小化架构调整,并可进一步支持更多合法代码通过编译。此后,该实现的稳定化工作一直被推迟,直至近日才重新提上日程。

借用检查器是 Rust 编译器的核心组件,负责对引用(即借用)行为执行严格规则管控。根据 Rust 官方文档,这些规则涵盖:确保所有变量在使用前完成初始化、同一值不被移动两次、被借用的值不可在借用期间被移动、被可变借用的位置不可被访问(通过该引用本身访问除外),以及被不可变借用的位置不可被修改等。

Q&A

Q1:Polonius Alpha 借用检查器和原来的 NLL 借用检查器有什么区别?

A:NLL(非词法生命周期)是 Rust 现有的稳定借用检查器实现。Polonius Alpha 是在 NLL 基础上提出的新方案,采用了最小化架构调整,能够支持更多合法代码顺利通过编译,同时修正了原有实现在健全性方面的一些局限。Polonius 项目自 2018 年启动,2023 年推出新公式设计,目前处于夜间版本测试阶段,稳定化工作预计今年完成。

Q2:开发者怎么关闭 Polonius Alpha,换回旧的借用检查器?

A:开发者可以通过三种方式禁用 Polonius Alpha 并切换回稳定版 NLL 借用检查器:向 rustc 传递 -Zpolonius=off 参数;设置环境变量 RUSTFLAGS=-Zpolonius=off;或者在项目的 .cargo/config.toml 配置文件中添加对应配置项。

Q3:Rust 借用检查器的主要作用是什么?

A:借用检查器是 Rust 编译器的核心安全机制,用于在编译阶段强制执行对引用的严格规则。具体包括:变量使用前必须初始化、同一值不能被移动两次、被借用的值在借用期间不可移动、被可变借用的位置不可被额外访问、被不可变借用的位置不可被修改。这些规则从根本上保障了 Rust 程序的内存安全。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O39j1vMZGSYHnH9DrRYczVfQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。
领券