Rust activa por defecto en nightly su nuevo resolvedor de traits

Fuentes: Enabling the next-generation trait solver on nightly

El equipo de Rust ha activado por defecto en el canal nightly el nuevo resolvedor de traits (next-generation trait solver), un componente del compilador desarrollado durante casi cuatro años que cambia por completo la forma de demostrar where-clauses y normalizar tipos asociados. El cambio estará disponible a partir del sábado 22 de agosto y, según el blog oficial del lenguaje, es la mayor modificación individual del compilador desde su lanzamiento inicial. Su estabilización definitiva está prevista para los próximos meses.

El nuevo resolvedor corrige más de 200 errores abiertos en GitHub y elimina varios problemas de no solidez (unsoundness) del sistema de tipos. Además, abre la puerta a características pendientes como Type Alias Impl Trait y Return Type Notation, y a nuevos límites de traits implícitos como Move y Forget. El equipo reconoce que la actualización introduce rupturas no triviales, en su mayoría mejoras de inferencia de tipos, y mantiene un issue fijo donde se documentan los problemas conocidos.

En cuanto al rendimiento, la optimización ha sido una prioridad en las últimas semanas. Aunque la mayoría de los 20.000 crates más descargados de crates.io mantienen un rendimiento similar, hay mejoras significativas: el crate datafusion compila más de 8 veces más rápido y una implementación de ajedrez en el sistema de tipos de Rust pasa de bloquearse a completarse en un minuto. El equipo pide a los usuarios que prueben la última nightly, informen de regresiones y, si es necesario, desactiven el nuevo resolvedor con -Znext-solver=coherence.