Valen の借用チェッカーは、関数を逆方向にたどるという、メモリ安全性検査の新しいアプローチを採用しています。Rust などの従来の順方向の借用チェッカーとは異なり、Valen は安全性検査の段階で関数の文を最後から最初へとたどります。
コンパイラは関数を次の 4 つの段階で処理します。AST への解析、静的型付け、静的グループ化、そして安全性検査です。安全性検査(第 4 段階)は通常とは逆の走査で、最後の文を最初に検査し、関数の先頭まで後ろへ戻っていきます。
この逆方向のアプローチには、扱いやすさ、ループの処理、速度といった利点があります。Valen は依然として実験段階にあり、2 月の v0.1 リリースまでは粗削りな部分が残ると予想されていますが、大規模なリファクタリングはすでに進行中です。
この手法は、Rust が採用している、制約解決による領域推論に続いて順方向の衝突検査を行う方式とは異なります。rustc も変数の使用箇所を探すために後方へ走査しますが、実際のメモリ安全性検査は前方へ進められます。
出典: Hacker News · 要約:HeadlinesBriefing