Het ontwikkelingsteam is blij om je Rust 1.36 voor te stellen!
Wat is er nieuw in Rust 1.36?
Laten we nu in detail bekijken:
- In Rust 1.36 is eindelijk de trait Future gestabiliseerd.
- De crate alloc.
Vanaf Rust 1.36 bevinden delen van std die afhankelijk zijn van de globale allocator (bijvoorbeeld Vec) zich in de crate alloc. Nu herexporteert std deze delen. Meer hierover. - MaybeUninit in plaats van mem::uninitialized.
In eerdere releases stelde mem::uninitialized je in staat om de initiƫle controle te omzeilen; dit werd gebruikt voor luie allocatie van arrays, maar deze functie is behoorlijk riskant (meer informatie), daarom is het type MaybeUninit gestabiliseerd, wat veiliger is.
En omdat MaybeUninit een veiligere vervanging is, zal mem::uninitialized vanaf Rust 1.38 een verouderde functie zijn.
Als je meer wilt weten over niet-geĆÆnitialiseerd geheugen, kun je de blogpost (Alexis Beingessner) lezen. - NLL voor Rust 2015.
In de aankondiging van Rust 1.31.0 vertelden de ontwikkelaars ons over NLL (Non-Lexical Lifetime), een verbetering voor de taal die de borrow checker slimmer en gebruiksvriendelijker maakt. Voorbeeld:
fn main() {
let mut x = 5;
let y = &x;
let z = &mut x; // Dit was niet toegestaan voor 1.31.0.
}In 1.31.0 werkte NLL alleen in Rust 2018, met de belofte dat de ontwikkelaars ondersteuning zouden toevoegen voor Rust 2015.
Als je meer wilt weten over NLL, kun je daar meer over lezen in deze blogpost (Felix Klocks). - Een nieuwe flag voor Cargo ā āoffline.
In Rust 1.36 is een nieuwe flag voor Cargo gestabiliseerd. De flag āoffline vertelt Cargo om lokaal gecache-de afhankelijkheden te gebruiken, zodat ze later zonder internet kunnen worden gebruikt. Wanneer de benodigde afhankelijkheden offline niet beschikbaar zijn, en als er toch internet nodig is, geeft Cargo een foutmelding. Om afhankelijkheden vooraf te downloaden, kun je het commando cargo fetch gebruiken, dat alle afhankelijkheden downloadt. - Hier je kunt een gedetailleerd overzicht van de veranderingen lezen.
Er zijn ook veranderingen in de standaardbibliotheek:
- De macro dbg!() kan nu meerdere argumenten aannemen.
- Een aantal API's zijn nu gemarkeerd als const:
- Nieuwe API's die zijn gestabiliseerd:
- Andere wijzigingen in de standaardbibliotheek vindt u hier. hier.
Andere veranderingen Rust, Cargo en Clippy.
Bron: linux.org.ru
