
Rust 1.93.0 ahora es estable y se lanzó hoy. Se centra en acrecentar las garantías de seguridad del compilador y al mismo tiempo proporciona nuevas herramientas cruciales para tareas críticas para el rendimiento. Es una interpretación sólida que hace que el idioma se sienta más reflexivo en las áreas más importantes.
Si crea binarios estáticos para Linux (especialmente en x86_64 o aarch64), la confiabilidad de su red está a punto de tomar un gran impulso. Rust 1.93 lleva la biblioteca musl incluida a la interpretación 1.2.5, lo que resuelve algunos dolores de inicio de larga data con la resolución DNS en las versiones anteriores. Esta es una gran novedad si está creando binarios portátiles de Linux que manejan redes, porque hace que esa funcionalidad sea mucho más confiable.
Esto ayuda especialmente cuando se tráfico de registros DNS grandes o servidores de nombres recursivos complicados. La modernización musl eliminó algunos símbolos de compatibilidad heredados. El óxido libc La caja utilizó estos símbolos. Sin incautación, hace más de dos abriles se envió una opción para este problema, por lo que la mayoría de los proyectos modernos no deberían verificar ningún problema durante el proceso de modernización.
Al permitir que los asignadores globales accedan al almacenamiento particular de subprocesos, la biblioteca típico ahora le permite usar de forma segura funciones como std::thread_local! sin provocar problemas de reentrada. Para aquellos que escriben código de bajo nivel enormemente optimizado, el nuevo soporte para cfg atributos directamente en asm! líneas es utópico. Anteriormente, si deseaba incluir condicionalmente algunas instrucciones de ensamblaje basadas en las características de destino, tenía que duplicar todo el asm! bando internamente de declaraciones de compilación condicional.
Ahora puedes aplicar la compilación condicional, como #(cfg(target_feature = "sse2"))directamente a líneas individuales de ensamblaje o restricciones internamente del bando. Esto hace que la redacción de optimizaciones específicas de la plataforma sea mucho más limpia y casquivana de perdurar.
La interpretación estabiliza una gran cantidad de API, brindando a los desarrolladores nuevas herramientas para regir la memoria y las estructuras de datos. Varios métodos nuevos para MaybeUninit las rebanadas ahora están estables. Estos incluyen assume_init_drop, assume_init_refy métodos como write_copy_of_slice. Estos proporcionan un control granular sobre la seguridad de la memoria cuando se tráfico de buffers no inicializados. Si trabaja con FFI o papeleo de memoria personalizada, además apreciará que String::into_raw_parts y Vec::into_raw_parts ahora son oficiales.
Esto le permite deconstruir estas colecciones en sus componentes principales, como punteros, longitudes y capacidades sin procesar. Los adictos al rendimiento apreciarán la estabilización de operaciones enteras no controladas como unchecked_neg, unchecked_shly unchecked_shr. Estos son cruciales para escribir código extremadamente rápido e inseguro donde el desarrollador garantiza que no se producirán desbordamientos ni cambios no válidos.
Para el uso diario, el VecDeque La colección tiene métodos como. pop_front_if y pop_back_if. Esto permite a los usuarios eliminar condicionalmente rudimentos de cualquier extremo de la trasero, lo que simplifica mucho la dialéctica de la trasero.
El deref_nullptr lint, que detecta intentos de eliminar la remisión a punteros nulos, ahora se deniega de forma predeterminada. Este es un cambio muy bienvenido porque ayuda a detectar problemas críticos de seguridad en tiempo de compilación en empleo de durante el tiempo de ejecución. Además se agregaron nuevas advertencias, incluyendo function_casts_as_integer y const_item_interior_mutations. Estos ayudan a aplicar las mejores prácticas y predisponer errores sutiles relacionados con la mutabilidad interior internamente de rudimentos constantes.
La variable de entorno CARGO_CFG_DEBUG_ASSERTIONS ahora está recaudador en scripts de compilación basados en el perfil activo. Esto proporciona a los scripts de compilación más contexto sobre cómo se compila el código. Por otra parte, cargo clean ahora apoya el --workspace flag, lo que simplifica la fregado para grandes proyectos de paquetes múltiples. Si analiza con frecuencia gráficos de dependencia, cargo tree ahora admite formularios largos para su --format variables, lo que hace que la salida compleja sea más casquivana de personalizar.
Hay mucho que ver en esta nueva interpretación y estarás atinado de poseer actualizado. Si ya tiene Rust instalado, puede obtener la modernización ahora mismo ejecutando rustup update stable.






