Linguaxe de programación Rust versión 1.43

publicado versión da linguaxe de programación do sistema Ferruxe 1.43, fundada polo proxecto Mozilla. A linguaxe céntrase na seguridade da memoria, ofrece unha xestión automática da memoria e ofrece ferramentas para lograr un alto paralelismo de tarefas sen utilizar un colector de lixo e tempo de execución.

A xestión automática da memoria de Rust libera ao programador da manipulación do punteiro e protexe contra os problemas derivados da manipulación de memoria de baixo nivel, como accesos á memoria despois libres, desreferencias de punteiros nulos, desbordamentos do búfer e similares. Estase a desenvolver un xestor de paquetes para distribuír bibliotecas, garantir a montaxe e xestionar as dependencias do proxecto. Carga, o que lle permite obter as bibliotecas necesarias para o programa cun só clic. Admítese un repositorio para aloxar bibliotecas caixóns.io.

O principal innovacións:

  • As macros proporcionan a posibilidade de utilizar fragmentos de elementos para convertelos en código para trazos (trait), implementacións (impl) ou bloques externos. Por exemplo:

    macro_regras! mac_trait {
    ($i:item) => {
    rasgo T {$i}
    }
    }
    mac_trait! {
    fn foo() {}
    }

    Dará lugar á xeración:

    trazo T {
    fn foo() {}
    }

  • Mellora a detección de tipos de primitivas, referencias e operacións binarias.
    Por exemplo, o seguinte código, que anteriormente causou un erro, agora poderá compilarse (Agora Rust determina correctamente que 0.0 e &0.0 deben ser do tipo f32):

    sexa n: f32 = 0.0 + &0.0;

  • Engadiuse a Cargo unha nova variable de ambiente CARGO_BIN_EXE_{nome}, que se establece ao crear probas de integración e permítelle determinar a ruta completa ao ficheiro executable definido na sección "[[bin]]" do paquete.
  • Se se permite que as instrucións utilicen atributos como "#[cfg()]".
  • A biblioteca ofrece a posibilidade de usar constantes asociadas directamente para tipos enteiros e fraccionarios, sen importar un módulo. Por exemplo, pode escribir inmediatamente u32::MAX ou f32::NAN sen antes especificar "use std::u32" e "use std::f32".
  • Engadiuse un novo módulo primitivo, que reexporta os tipos primitivos de Rust, por exemplo cando precisa escribir unha macro e asegurarse de que os tipos non estean ocultos.
  • Unha nova parte das API foi transferida á categoría estable, incluída a estabilizada

    Unha vez que::es_completado,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 e
    iter::unha vez_con.

Fonte: opennet.ru

Engadir un comentario