Valens Borrow Checker arbeitet rückwärts durch Funktionen, ein neuartiger Ansatz zur Prüfung der Speichersicherheit. Anders als herkömmliche Borrow Checker mit Vorwärtsdurchlauf, wie der von Rust, geht Valen während der Sicherheitsprüfung die Anweisungen einer Funktion von der letzten bis zur ersten durch.
Der Compiler verarbeitet Funktionen in vier Phasen: Parsing in einen AST, statische Typisierung, statische Gruppierung und Sicherheitsprüfung. Die Sicherheitsprüfung (Nr. 4) ist der ungewöhnliche Rückwärtsdurchlauf, der zuerst die letzte Anweisung untersucht und sich dann bis zum Anfang der Funktion rückwärts vorarbeitet.
Dieser umgekehrte Ansatz bietet Vorteile bei Komfort, Schleifenbehandlung und Geschwindigkeit. Valen befindet sich noch im Experimentierstadium, und bis zur Version v0.1 im Februar sind Ecken und Kanten zu erwarten, obwohl bereits ein umfangreiches Refactoring läuft.
Die Technik unterscheidet sich von Rusts constraint-basierter Regionsinferenz, auf die eine Konfliktprüfung in Vorwärtsrichtung folgt. Zwar durchsucht rustc den Code ebenfalls rückwärts, um Variablennutzungen zu finden, seine eigentlichen Speichersicherheitsprüfungen laufen jedoch vorwärts.
Quelle: Hacker News · Zusammengefasst von HeadlinesBriefing