Rust 1.68 llega con mejoras de soporte y mas

rust

Rust es un lenguaje de programación compilado que soporta programación funcional pura, por procedimientos, imperativa y orientada a objetos.

Hace poco se dio a conocer el lanzamiento de la nueva versión del lenguaje de programación «Rust 1.68». Para quienes desconocen de Rust, deben saber que este lenguaje de programación fue fundado por el proyecto Mozilla, pero ahora desarrollado bajo los auspicios de la organización independiente sin fines de lucro Rust Foundation.

El lenguaje se enfoca en la seguridad de la memoria y proporciona los medios para lograr un alto paralelismo de trabajos mientras evita el uso de un recolector de basura y tiempo de ejecución (el tiempo de ejecución se reduce a la inicialización básica y el mantenimiento de la biblioteca estándar).

Los métodos de manejo de memoria de Rust salvan al desarrollador de errores al manipular punteros y protegen contra problemas que surgen debido a la manipulación de memoria de bajo nivel, como acceder a un área de memoria después de haberla liberado, desreferenciar punteros nulos, desbordamientos de búfer, etc. Para distribuir bibliotecas, proporcionar compilaciones y administrar dependencias, el proyecto desarrolla el administrador de paquetes Cargo.

Rust también brinda protección contra desbordamientos de enteros, requiere la inicialización obligatoria de los valores de las variables antes de su uso, maneja mejor los errores en la biblioteca estándar, aplica el concepto de referencias y variables inmutables de forma predeterminada, ofrece tipado estático fuerte para minimizar los errores lógicos.

Principales novedades de Rust 1.68

En esta nueva versión que se presenta de Rust 1.68, podremos encontrar que el soporte para el protocolo Sparse se ha estabilizado en el administrador de paquetes Cargo y el repositorio crates.io, lo que define una nueva forma de trabajar con un índice que refleja las versiones disponibles de todos los paquetes existentes en el repositorio.

El nuevo protocolo permite aumentar significativamente la velocidad de trabajo con crates.io y resolver problemas de escalado con un aumento adicional en la cantidad de paquetes en el repositorio.

Para reducir los retrasos que resultan de la descarga de un índice completo, Sparse, en lugar de acceder al índice mediante Git, descarga directamente a través de HTTPS solo los datos de índice necesarios, cubriendo las dependencias de un proyecto en particular. Para devolver datos de índice, está involucrado un nuevo servicio index.crates.io.

De forma predeterminada, el nuevo protocolo está planificado para usarse en la rama Rust 1.70, y antes de eso, para habilitarlo, puede establecer la variable de entorno «CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse» o agregar el parámetro ‘protocol=sparse’ al archivo .cargo/config.toml.

Otro de los cambios que se destaca, es que se agregó la macro » pin! « que permite crear una estructura Pin<&mut T> a partir de la expresión «T» con fijación local de su estado (a diferencia de Box::pin no asigna memoria en el montón, sino que se une al nivel de la pila).

Ademas de ello, tambien podremos encontrar que se propone un controlador de errores de asignación de memoria predeterminado, que se usa cuando se usa el paquete de asignación estándar.

Las aplicaciones que solo habilitan alloc (no std) ahora llamarán al controlador «panic!» en caso de fallas en la asignación de memoria, que opcionalmente se puede interceptar con «#[panic_handler]». Los programas que utilizan la biblioteca std seguirán imprimiendo información de error en stderr y fallarán.

De los demás cambios que se destacan:

  • Una nueva parte de la API se ha movido a la categoría de estable, incluidos los métodos y las implementaciones de rasgos que se han estabilizado
  • El atributo «const», que determina la posibilidad de usarlo en cualquier contexto en lugar de constantes, se usa en el VecDeque::new.
  • La plataforma Android ahora requiere al menos NDK r25 (API 19), es decir, La versión mínima de Android admitida se elevó a 4.4 (KitKat).
  • Se ha implementado el tercer nivel de soporte para la plataforma Sony PlayStation Vita (armv7-sony-vita-newlibeabihf).
  • El tercer nivel implica soporte básico, pero sin pruebas automatizadas, publicación de compilaciones oficiales y verificación de la capacidad de compilar el código.

Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

Finalmente, para quienes estén interesados en actualizar desde una versión anterior de Rust instalada a través de rustup, se puede obtener lanueva version de Rust 1.68.0 con:

rustup update stable


Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.