Vydanie programovacieho jazyka Rust 1.43

publikovaný vydanie systémového programovacieho jazyka Hrdza 1.43, ktorú založil projekt Mozilla. Jazyk sa zameriava na bezpečnosť pamäte, poskytuje automatickú správu pamäte a poskytuje nástroje na dosiahnutie vysokého paralelizmu úloh bez použitia zberača odpadu a runtime.

Automatická správa pamäte Rust oslobodzuje vývojára od manipulácie s ukazovateľmi a chráni pred problémami vznikajúcimi pri manipulácii s pamäťou na nízkej úrovni, ako sú napríklad prístupy do pamäte po uvoľnení, dereferences nulového ukazovateľa, pretečenie vyrovnávacej pamäte a podobne. Vyvíja sa správca balíkov na distribúciu knižníc, zabezpečenie zostavenia a správu závislostí v rámci projektu. náklad, čo vám umožní získať knižnice potrebné pre program jedným kliknutím. Hostiteľské knižnice podporujú úložisko crates.io.

Hlavné inovácie:

  • Makrá poskytujú možnosť použiť fragmenty prvkov na ich premenu na kód pre vlastnosti (trait), implementácie (impl) alebo externé bloky. Napríklad:

    makro_pravidlá! mac_trait {
    ($i:item) => {
    vlastnosť T { $i }
    }
    }
    mac_trait! {
    fn foo() {}
    }

    Povedie ku generácii:

    vlastnosť T {
    fn foo() {}
    }

  • Vylepšená detekcia typu primitív, referencií a binárnych operácií.
    Napríklad nasledujúci kód, ktorý predtým spôsoboval chybu, bude teraz možné skompilovať (Rust teraz správne určí, že 0.0 a &0.0 musia byť typu f32):

    nech n: f32 = 0.0 + & 0.0;

  • Do Cargo bola pridaná nová premenná prostredia CARGO_BIN_EXE_{name}, ktorá sa nastavuje pri vytváraní integračných testov a umožňuje vám určiť úplnú cestu k spustiteľnému súboru definovanému v časti balíka „[[bin]]“.
  • Ak príkazy môžu používať atribúty ako "#[cfg()]".
  • Knižnica poskytuje možnosť použiť priradené konštanty priamo pre celočíselné a zlomkové typy bez importovania modulu. Napríklad môžete okamžite napísať u32::MAX alebo f32::NAN bez toho, aby ste najprv zadali „use std::u32“ a „use std::f32“.
  • Pridaný nový modul primitívne, ktorý reexportuje primitívne typy Rust, napríklad keď potrebujete napísať makro a uistiť sa, že typy nie sú skryté.
  • Nová časť API bola presunutá do stabilnej kategórie vrátane stabilizovaných

    Once::is_completed,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 a
    iter::raz_s.

Zdroj: opennet.ru

Pridať komentár