Polonius 是 Rust 借用检查器的新形式,它的目标是比当前的借用检查器更加精确和高效,同时也更易于理解和推理。 Polonius 的目标是在 Rust 2024 前稳定,文章列出了一些里程碑关键目标及最近的进展,例如它对新类型系统的使用以及处理更复杂的借用模式的能力。当然目前 Polonius 工作组仍在做一些基础性的工作,预计随着项...
在Polonius中,lifetime是可能被引用的内存区域的集合。所以,从这两个集合的角度来看,lifetime的正确叫法,不论是代码区域的集合,还是内存区域的集合,都应该叫做region。其中Polonius的实现最精确,也很容易理解,都是围绕着内存转,所以我很喜欢。 最后,lifetime的变量形式是'a这样的写法(就是一个单引号,后面加名字) ...
新编译器Polonius 针对现有编译器存在的各种问题,Rust团队正在研发一个全新的编译器,名曰polonius,但是目前它仍然处在开发阶段,如果想在自己项目中使用,需要在rustc/RUSTFLAGS中增加标志-Zpolonius,但是可能会导致编译速度变慢,或者引入一些新的编译错误。 总结 编译器不是万能的,它也会迷茫,也会犯错。 因此我们在循环...
Why the name "Polonius"? The name comes from the famous quote"Neither a borrower nor a lender be", which comes from the character Polonius in Shakespeare'sHamlet. Want to run the code? One of the goals with this repo is to experiment and compare different implementations of the same algor...
类型团队的范畴很大,包含2018年就已经存在的Rust特征工作组,特征工作组目的是要创建高性能Rust特征系统,像是特征解决函数库Chalk,而由于功能的延伸,因此特征工作组的工作也波及类型检查器和借用检查器。另一个相关的则是Polonius工作组,主要设计和实例Polonius借用检查函数库,目前也被编入Rust类型团队。官方提到,...
同时编译器能够在编译时进行检查,确保代码的正确性,是借用检查的幕后功臣。针对生命周期引入的一些限制及学习成本, Rust 成立了 Polonius 工作组来对借用检查进行进一步优化,相信很快开发者不再需关注这个概念,让生命周期真正退居幕后。 零成本抽象 零成本抽象是 Rust 中的一项基本原则,体现在语言设计的各个方面。零...
主要的工作会涵盖 下一代借用检查器 Polonius 的设计与实现(目前已经引入 Nightly ,但是因为性能问题没有面向大众稳定),以及 trait 系统重构(chalk 虽然实现了有几年,但它不是 Rust 的长期解决方案,但目前仍保留其实验目的) 等。目前 trait 系统重构的优先级更高。同时,类型团队也有形式化定义类型系统的职责,以此...
主要的工作会涵盖 下一代借用检查器 Polonius 的设计与实现(目前已经引入 Nightly ,但是因为性能问题没有面向大众稳定),以及 trait 系统重构(chalk 虽然实现了有几年,但它不是 Rust 的长期解决方案,但目前仍保留其实验目的) 等。目前 trait 系统重构的优先级更高。同时,类型团队也有形式化定义类型系统的职责,以此...
类型团队的范畴很大,包含2018年就已经存在的Rust特征工作组,特征工作组目的是要创建高性能Rust特征系统,像是特征解决函数库Chalk,而由于功能的延伸,因此特征工作组的工作也波及类型检查器和借用检查器。另一个相关的则是Polonius工作组,主要设计和实例Polonius借用检查函数库,目前也被编入Rust类型团队。
主要的工作会涵盖 下一代借用检查器 Polonius 的设计与实现(目前已经引入 Nightly ,但是因为性能问题没有面向大众稳定),以及 trait 系统重构(chalk 虽然实现了有几年,但它不是 Rust 的长期解决方案,但目前仍保留其实验目的) 等。目前 trait 系统重构的优先级更高。同时,类型团队也有形式化定义类型系统的职责,以此...