Rust 1.78, recién lanzado como la última versión del popular lenguaje de programación seguro para la memoria, agrega respaldo para un #[diagnostic] espacio de nombres de atributo para influir en los mensajes del compilador. Estos mensajes se tratan como sugerencias que el compilador no está obligado a utilizar, dijo el equipo de Rust. Además, no es un error proporcionar un diagnóstico que el compilador no reconoce. La característica está diseñada para permitir que el código fuente proporcione diagnósticos incluso cuando no son compatibles con todos los compiladores. Anunciado el 2 de mayo, Rust 1.78 se puede instalar a través de Rustup:$ Rustup Update estable. Otra característica de Rust 1.78 se refiere a afirmar condiciones previas inseguras. La biblioteca estándar de Rust tiene una serie de afirmaciones para condiciones previas de funciones inseguras, pero históricamente solo se han habilitado en #[cfg(debug_assertions)] compilaciones de la biblioteca para evitar afectar el rendimiento de la versión. Dado que la biblioteca generalmente se compila y distribuye en modo de lanzamiento, la mayoría de los desarrolladores de Rust no ejecutaban estas comprobaciones. Con Rust 1.78, la condición para estas aserciones se retrasa hasta la generación del código, por lo que se verificarán según la configuración del usuario para las aserciones de depuración. habilitado de forma predeterminada en compilaciones de depuración y prueba. Este cambio ayudará a detectar comportamientos indefinidos en el código, dijo el equipo de Rust. Sin embargo, los detalles de cuánto se verifica generalmente no son estables. La realineación determinista también aparece en Rust 1.78. La biblioteca estándar tiene funciones que cambian la alineación de punteros y cortes, pero anteriormente tenían advertencias que hacían difícil confiar en ellas en la práctica. Estas advertencias existían principalmente como protección contra la evaluación constante, pero solo eran estables para el uso no constante. Ahora, se les promete tener un comportamiento de tiempo de ejecución consistente de acuerdo con las entradas reales. Rust 1.78 también estabiliza una serie de API, eleva su requisito mínimo a Windows 10 para objetivos como x_86-pc-windows-msvc y actualiza su LLVM incluido a LLVM. 18. Rust 1.78 sigue al lanzamiento del 21 de marzo de Rust 1.77, que incluía soporte para literales de cadena C. También se realizaron dos lanzamientos puntuales posteriores, Rust 1.77.1, que deshabilitó el nuevo comportamiento de Cargo en Windows para objetivos que utilizan MSVC (Microsoft C y C++), y Rust 1.77.2, que incluía una solución de vulnerabilidad. Copyright © 2024 IDG Communications, Inc.