El verificador de préstamos de Valen opera de forma inversa a través de las funciones, un enfoque novedoso para comprobar la seguridad de la memoria. A diferencia de los verificadores de préstamos tradicionales de paso directo, como el de Rust, Valen recorre las sentencias de la función desde la última hasta la primera durante su fase de comprobación de seguridad.
El compilador procesa las funciones en cuatro fases: análisis sintáctico en un AST, tipado estático, agrupación estática y comprobación de seguridad. La comprobación de seguridad (n.º 4) es la inusual pasada inversa, que examina primero la última sentencia y retrocede hasta el inicio de la función.
Este enfoque inverso ofrece ventajas en comodidad, manejo de bucles y velocidad. Valen sigue siendo experimental, con aristas afiladas esperadas hasta la versión v0.1 en febrero, aunque ya está en marcha un importante esfuerzo de refactorización.
La técnica difiere de la inferencia de regiones por resolución de restricciones de Rust, seguida de una comprobación de conflictos hacia adelante. Aunque rustc sí recorre hacia atrás para encontrar el uso de las variables, sus comprobaciones reales de seguridad de memoria avanzan hacia adelante.
Fuente: Hacker News · Resumido por HeadlinesBriefing