Programski jezik Rust 1.43 izdanje

objavljeno izdanje sistemskog programskog jezika Rđa 1.43, osnovan od strane Mozilla projekta. Jezik se fokusira na sigurnost memorije, pruža automatsko upravljanje memorijom i pruža alate za postizanje visokog paralelizma zadataka bez korištenja sakupljača smeća i runtime.

Rust-ovo automatsko upravljanje memorijom oslobađa programera od manipulacije pokazivačem i štiti od problema koji proizlaze iz manipulacije memorijom na niskom nivou, kao što su pristupi memoriji nakon slobodne upotrebe, dereferenciranje nulte pokazivača, prekoračenje bafera i slično. Razvija se menadžer paketa za distribuciju biblioteka, osiguravanje sklapanja i upravljanje ovisnostima od strane projekta. teret, što vam omogućava da jednim klikom dobijete biblioteke potrebne za program. Podržano je spremište za hostiranje biblioteka crates.io.

Glavni inovacije:

  • Makroi pružaju mogućnost korištenja fragmenata elemenata kako bi ih pretvorili u kod za osobine (obilježja), implementacije (impl) ili vanjske blokove. Na primjer:

    macro_rules! mac_trait {
    ($i:item) => {
    osobina T { $i }
    }
    }
    mac_trait! {
    fn foo() {}
    }

    Dovest će do generacije:

    osobina T {
    fn foo() {}
    }

  • Poboljšana detekcija tipa primitiva, referenci i binarnih operacija.
    Na primjer, sljedeći kod, koji je prethodno izazvao grešku, sada će moći da se kompajlira (Rust sada ispravno određuje da 0.0 i &0.0 moraju biti tipa f32):

    neka n: f32 = 0.0 + &0.0;

  • Nova varijabla okruženja CARGO_BIN_EXE_{name} je dodana u Cargo, koja se postavlja prilikom izrade integracijskih testova i omogućava vam da odredite punu putanju do izvršne datoteke definirane u “[[bin]]” dijelu paketa.
  • Ako je izjavama dozvoljeno korištenje atributa kao što je "#[cfg()]".
  • Biblioteka pruža mogućnost korištenja povezanih konstanti direktno za cjelobrojne i razlomke, bez uvoza modula. Na primjer, možete odmah napisati u32::MAX ili f32::NAN bez prethodnog navođenja “use std::u32” i “use std::f32”.
  • Dodat je novi modul primitivna, koji ponovo izvozi Rust primitivne tipove, na primjer kada trebate napisati makro i provjeriti da tipovi nisu skriveni.
  • Novi dio API-ja prebačen je u stabilnu kategoriju, uključujući stabilizirane

    Jednom::is_completed,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 i
    iter::once_with.

izvor: opennet.ru

Dodajte komentar