Desde el lanzamiento del lenguaje de programación Rust, con su versión 0.1 a inicios del año 2012, el mismo ha tenido un excelente y sostenido ciclo de desarrollo. Además de, una creciente popularidad y buena aceptación entre los programadores y usuarios de software, dado que, permite fácilmente el poder desarrollar software fiable y eficiente. Y recientemente ha liberado una nueva actualización bajo el nombre de ‘Rust 1.65.0’ con interesantes novedades que aquí abordaremos.
Sin embargo, vale destacar que el mismo, a lo largo de estos últimos años, ha tenido un magnífico uso e integración con el Kernel Linux, y, en consecuencia, en los sistemas operativos libres y abiertos basados en GNU/Linux. Llegando al punto de haber sido integrado dentro del Kernel Linux desde su versión 6.1, y de ser utilizado para crear magnificas apps, tal como se ha difundido ampliamente aquí en DesdeLinux y muchas otras webs linuxeras e informáticas.
-Rust 1.65.0: Un lenguaje para construir software fiable y eficiente-
-Novedades de Rust 1.65.0
Entre las novedades (añadidos, mejoras y correcciones) anunciados entre su sitio web oficial y su sitio web en GitHub, vale destacar algunas importantes, tales como:
-Cambios en los GAT: Type y Const
Los genéricos de por vida (GAT), ‘type’ y ‘const’, ahora se pueden definir en tipos asociados, que hacen de las mismas funcionalidades más versátiles, facilitando el empleo de una serie de patrones que actualmente no se pueden escribir.
-Nuevo tipo de «declaración let
Se ha introducido un nuevo tipo de “declaración let” que incorpora un patrón refutable y un “else” en forma de bloque divergente que se ejecuta cuando ese patrón no coincide. Las normales declaraciones “let” solo pueden usar patrones irrefutables, estáticamente conocidas por coincidir siempre. Mientras que, esta nueva incorporada, emplea un patrón refutable, que puede hacer coincidir y vincular variables en el ámbito circundante como un normal letb. O bien, divergir cuando el patrón no coincide.
-Función break en bloques etiquetados
Las expresiones de bloque simple ahora se pueden etiquetar como un objetivo break, lo que ahora permite que, un bloque pueda terminarse antes de tiempo. Algo muy similar a utilizar una declaración “goto”, sin ser un salto arbitrario. Solo desde dentro de un bloque hasta su final. Ahora, esta nueva función etiquetada como “break”, también puede incluir un valor de expresión, al igual que con los bucles. Lo que permite que un bloque de varias declaraciones tenga un valor de “retorno” temprano.
-División de la información de depuración de Linux
El soporte para dividir la información de depuración en macOS, ahora también es estable sobre Linux. Por ejemplo:
- Csplit-debuginfo=unpacked dividirá la información de depuración en varios archivos .dwo (archivos de objeto DWARF).
- Csplit-debuginfo=packed producirá un solo paquete .dwp (DWARF) junto con su binario de salida con toda la información de depuración empaquetada.
- Csplit-debuginfo=off sigue siendo el comportamiento predeterminado, que incluye datos DWARF en .debug_*, las secciones ELF de los objetos y el binario final.
-Otras novedades más
- La inserción de MIR ahora está habilitada para compilaciones optimizadas. Esto proporciona una mejora del 3 al 10 % en los tiempos de compilación para las cajas del mundo real.
- Al programar compilaciones, Cargo ahora ordena la cola de trabajos pendientes para mejorar el rendimiento.
- A nivel del compilador, se agregó soporte para generar archivos profraw únicos de forma predeterminada al usar «-C instrument-coverage». Además, ahora se permite el uso enlaces dinámicos para objetivos de iOS/tvOS, entre muchas otras cosas.
“Rust es un lenguaje de programación compilado, de propósito general y multiparadigma que está siendo desarrollado por Mozilla y respaldada por LLVM. Este lenguaje ha sido diseñado para ser un lenguaje seguro, concurrente y práctico y sobre todo para ser un remplazo para los lenguajes C y C++. Rust es un lenguaje de programación de código abierto que soporta programación funcional pura, por procedimientos, imperativa y orientada a objetos”.
En resumen, este lanzamiento de ‘Rust 1.65.0’ continúa aportando valor al desarrollo y utilización de tan genial lenguaje de programación, que cada día más cobra importancia sobre los sistemas operativos basados en GNU/Linux. Tanto así, que a partir de la serie 6.1 del Kernel Linux, ha logrado incorporarse al mismo. Lo cual, es algo muy importante, debido a que Rust tiene una propiedad clave que garantiza que no se produzca ningún comportamiento indefinido dentro del Kernel.