El equipo de Rust ha anunciado la versión 1.99.0, una actualización que introduce cambios significativos en la seguridad y la interoperabilidad con C. La novedad principal es la estabilización de la definición de funciones variadas con ABIs 'C' y 'C-unwind', permitiendo a los desarrolladores escribir estas funciones directamente en Rust en lugar de depender exclusivamente de llamadas externas. Esto se logra mediante el uso de la estructura VaList, que es compatible con el tipo va_list de C en todos los objetivos, y la traza VaArgSafe para garantizar la seguridad al acceder a los argumentos.
Además, esta versión resuelve las restricciones de seguridad para obtener el tamaño y la alineación de punteros crudos tanto para tipos Sized como non-Sized. Se han estabilizado tres funciones específicas para este fin. También se ha actualizado la documentación de Box::leak, recomendando ahora el uso de Box::into_non_null para evitar interacciones problemáticas con optimizaciones del compilador y futuros asignadores personalizados. Los usuarios pueden actualizar a esta versión mediante el comando rustup update stable, mientras que los desarrolladores que deseen probar futuras funcionalidades pueden utilizar los canales beta o nightly. El lanzamiento incluye mejoras en Cargo y Clippy, consolidando la madurez de la herramienta.
