Roest 1.36

Het ontwikkelingsteam is verheugd om Rust 1.36 te introduceren!

Wat is er nieuw in Rust 1.36?
Toekomstige eigenschap gestabiliseerd, vanaf nieuw: alloc-krat, MaybeUninit , NLL voor Rust 2015, een nieuwe implementatie van HashMap en een nieuwe vlag -offline voor Cargo.


En nu in meer detail:

  • Eindelijk in Rust 1.36 gestabiliseerd eigenschap Toekomst.
  • Krat toegewezen.
    Vanaf Rust 1.36 zijn delen van de standaard die afhankelijk zijn van de globale allocator (zoals Vec ), bevinden zich in het toewijzingskrat. Nu zal std deze onderdelen opnieuw exporteren. Meer erover.
  • Misschien Eenheid in plaats van mem::niet-geïnitialiseerd.
    In eerdere releases kon je met mem::uninitialized de initialisatiecontrole omzeilen. Deze werd gebruikt voor luie array-toewijzing, maar deze functie is behoorlijk gevaarlijk (meer), dus het type MaybeUnit was gestabiliseerd , wat veiliger is.
    Nou ja, sinds MaybeUninit is een veiliger alternatief, en vanaf Rust 1.38 zal mem::uninitialized een verouderde functie zijn.
    Als je meer wilt weten over niet-geïnitialiseerd geheugen, kun je deze blogpost van Alexis Beingessner lezen.
  • NLL voor Rust 2015.
    In de aankondiging Roest 1.31.0 De ontwikkelaars vertelden ons over NLL (Non-Lexical Lifetime), een verbetering van de taal die de leenchecker slimmer en gebruiksvriendelijker maakt. Voorbeeld:
    fn hoofd() {
    laat mut x = 5;
    laat y = &x;
    zij z = &mut x; // Dit was vóór 1.31.0 niet toegestaan.
    }

    In 1.31.0 werkte NLL alleen in Rust 2018, met de belofte dat de ontwikkelaars ondersteuning zullen toevoegen in Rust 2015.
    Als je meer wilt weten over NLL, kun je hier meer over lezen Blog berichten (Felix Klokken).

  • De nieuwe vlag voor Cargo is —offline.
    Rust 1.36 heeft een nieuwe vlag voor Cargo gestabiliseerd. De vlag --offline vertelt Cargo om lokaal in de cache opgeslagen afhankelijkheden te gebruiken, zodat deze later offline kunnen worden gebruikt. Wanneer de noodzakelijke afhankelijkheden offline niet beschikbaar zijn en internet nog steeds nodig is, zal Cargo een foutmelding retourneren. Om afhankelijkheden vooraf te downloaden, kunt u de opdracht cargo fetch gebruiken, waarmee alle afhankelijkheden worden gedownload.
  • Hier Een gedetailleerder overzicht van de wijzigingen kunt u lezen.

Er zijn ook wijzigingen in de standaardbibliotheek:

Andere wijzigingen Roest, Cargo и Clippy.

Bron: linux.org.ru

Voeg een reactie