Valen 的借用检查器以逆向方式处理函数,这是一种新颖的内存安全检查方法。与 Rust 等传统的正向借用检查器不同,Valen 在安全检查阶段从最后一条语句向第一条语句遍历函数。
编译器分四个阶段处理函数:解析为 AST、静态类型检查、静态分组和安全检查。安全检查(第 4 阶段)是不同寻常的逆向过程,先检查最后一条语句,再向函数顶部逐条回溯。
这种逆向方法在便利性、循环处理和速度方面具有优势。Valen 仍处于实验阶段,在 2 月发布 v0.1 版本之前预计会存在明显的粗糙之处,不过大规模重构工作已经开始。
该技术不同于 Rust 的做法:Rust 先进行约束求解的区域推断,再进行正向冲突检查。虽然 rustc 确实会向后扫描以查找变量的使用情况,但其实际的内存安全检查是正向进行的。
来源: Hacker News · 由HeadlinesBriefing整理摘要