Le vérificateur d'emprunts de Valen fonctionne à rebours à travers les fonctions, une approche novatrice de la vérification de la sécurité mémoire. Contrairement aux vérificateurs d'emprunts traditionnels à passage avant, comme celui de Rust, Valen parcourt les instructions de la fonction de la dernière à la première pendant sa phase de vérification de sécurité.
Le compilateur traite les fonctions en quatre phases : analyse syntaxique en AST, typage statique, regroupement statique et vérification de sécurité. La vérification de sécurité (n° 4) est l'inhabituel passage inverse, qui examine d'abord la dernière instruction et remonte jusqu'au début de la fonction.
Cette approche inversée offre des avantages en termes de commodité, de gestion des boucles et de vitesse. Valen reste expérimental, avec des aspérités attendues jusqu'à la version v0.1 prévue en février, bien qu'un vaste effort de refactorisation soit déjà en cours.
La technique diffère de l'inférence de régions par résolution de contraintes utilisée par Rust, suivie d'une vérification des conflits vers l'avant. Si rustc effectue bien un balayage arrière pour trouver les utilisations des variables, ses véritables vérifications de sécurité mémoire progressent vers l'avant.
Source: Hacker News · Résumé par HeadlinesBriefing