Versió del llenguatge de programació Rust 1.43

publicat llançament del llenguatge de programació del sistema Rovell 1.43, fundada pel projecte Mozilla. El llenguatge se centra en la seguretat de la memòria, proporciona una gestió automàtica de la memòria i proporciona eines per aconseguir un alt paral·lelisme de tasques sense utilitzar un col·lector d'escombraries i temps d'execució.

La gestió automàtica de la memòria de Rust estalvia al desenvolupador de manipular punters i protegeix dels problemes derivats de la manipulació de la memòria de baix nivell, com ara accedir a una àrea de memòria després d'haver-se alliberat, desreferenciar punters nuls, desbordaments de memòria intermèdia, etc. Per distribuir biblioteques, assegurar el muntatge i gestionar les dependències, el projecte desenvolupa un gestor de paquets Càrrega, que us permet obtenir les biblioteques que necessiteu per al programa amb un sol clic. S'admet un dipòsit per allotjar biblioteques caixes.io.

El principal innovacions:

  • Les macros ofereixen la possibilitat d'utilitzar fragments d'elements per convertir-los en codi per a trets (trait), implementacions (impl) o blocs externs. Per exemple:

    macro_regles! mac_trait {
    ($i:item) => {
    tret T { $i }
    }
    }
    mac_trait! {
    fn foo() {}
    }

    Portarà a la generació:

    tret T {
    fn foo() {}
    }

  • Millora de la detecció de tipus de primitives, referències i operacions binàries.
    Per exemple, el codi següent, que anteriorment causava un error, ara es podrà compilar (Rust ara determina correctament que 0.0 i &0.0 han de ser de tipus f32):

    sigui n: f32 = 0.0 + &0.0;

  • S'ha afegit una nova variable d'entorn CARGO_BIN_EXE_{nom} a Cargo, que s'estableix en crear proves d'integració i us permet determinar el camí complet al fitxer executable definit a la secció "[[bin]]" del paquet.
  • Si les sentències poden utilitzar atributs com ara "#[cfg()]".
  • La biblioteca ofereix la possibilitat d'utilitzar constants associades directament per a tipus enters i fraccionaris, sense importar cap mòdul. Per exemple, podeu escriure immediatament u32::MAX o f32::NAN sense especificar abans "use std::u32" i "use std::f32".
  • S'ha afegit un nou mòdul primitiu, que reexporta els tipus primitius de Rust, per exemple quan necessiteu escriure una macro i assegurar-vos que els tipus no estiguin ocults.
  • Una nova part de les API s'ha transferit a la categoria estable, inclosa la estabilitzada

    Un cop::es_completat,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 i
    iter::once_with.

Font: opennet.ru

Afegeix comentari