Rust 1.84 introduce APIs de Strict Provenance

La versión Rust 1.84 ya está disponible y llega con una mejora significativa: nuevas APIs de strict provenance que en muchos casos pueden reemplazar el uso de conversiones entre punteros e enteros.

Esto permite a los desarrolladores escribir código más seguro, legible y fácil de analizar tanto para humanos como para el compilador, según informó el equipo de Rust.

La actualización fue anunciada el 9 de enero y puede instalarse mediante el comando:

rustup update stable

¿Qué es strict provenance?

El uso de punteros como enteros en bajo nivel puede provocar ambigüedades y errores sutiles. Con estas nuevas APIs:
– Se evita la necesidad de convertir punteros a enteros para almacenar información adicional en los bits bajos.
– Se mejora la claridad del código y su comportamiento ante análisis de seguridad y optimización del compilador.

Resolver con conciencia del MSRV

Rust 1.84 también estabiliza el nuevo resolvedor consciente del MSRV (Minimum Supported Rust Version).

Este resolvedor:

  • Prefiere automáticamente versiones de dependencias compatibles con la versión mínima de Rust declarada por el proyecto.
  • Reduce el trabajo manual para los mantenedores que quieren seguir soportando toolchains antiguos.
  • Puede activarse en el archivo .cargo/config.toml.

Nuevas bases para el sistema de tipos

El compilador de Rust está en proceso de migración hacia un nuevo sistema de resolución de traits, que es responsable de validar los límites de traits y otros aspectos fundamentales del sistema de tipos.

Con la versión 1.84:

  • Este nuevo trait solver se usa para verificar la coherencia de implementaciones, asegurando que no haya más de una implementación del mismo trait para un tipo dado.
  • Se corrigen posibles inconsistencias teóricas de la implementación anterior.

Otras mejoras

  • Se han estabilizado más de una docena de APIs adicionales.
  • Continúa la evolución iniciada con Rust 1.83, que había mejorado el soporte para ejecutar código en contextos const.