Rust 1.35 programmeertaal release

vond plaats systeem programmeertaal release Roest 1.35, ontwikkeld door het Mozilla-project. De taal richt zich op geheugenveiligheid, biedt automatisch geheugenbeheer en biedt een manier om een ​​hoge taakparallelliteit te bereiken zonder gebruik te maken van een garbage collector of runtime.

Het automatische geheugenbeheer van Rust bevrijdt de ontwikkelaar van pointermanipulatie en beschermt tegen problemen die voortkomen uit geheugenmanipulatie op laag niveau, zoals after-free geheugentoegang, null pointer-dereferenties, bufferoverruns en dergelijke. Er wordt een pakketbeheerder ontwikkeld om bibliotheken te distribueren, de assemblage te garanderen en de afhankelijkheden van het project te beheren. Cargo, zodat u met één klik de bibliotheken kunt verkrijgen die nodig zijn voor het programma. Er wordt een repository ondersteund om bibliotheken te hosten kratten.io.

De belangrijkste innovaties:

  • Onderscheidende kenmerken FnOnce, FnMut и Fn geïmplementeerd voor heap-allocated in dozen gestoken typen Box‹dyn FnOnce›, Box‹dyn FnMut› en Box‹dyn Fn›;
  • Toegevoegd kans afsluitingen gieten naar onveilige functieaanwijzers (onveilige fn);
  • De mogelijkheid geïmplementeerd om de macro "dbg!" zonder argumenten voor het weergeven van de bestandsnaam en het regelnummer in stderr zonder de variabele te inspecteren, wat handig is voor het debuggen van de werking van voorwaardelijke expressies;
  • Methode " toegevoegd aan drijvende-kommatypen f32 en f64kopieerbord» een teken van het ene getal naar het andere kopiëren;
  • Methode toegevoegd "bevat“, waarmee u kunt controleren of de opgegeven waarde binnen het bereik valt;
  • Methode toegevoegd Ref:Cel:map_split, waardoor u de geleende RefCell-waarde voor verschillende componenten van de geleende gegevens kunt weergeven en scheiden;
  • Methode toegevoegd RefCell::replace_with om de huidige RefCell-waarde te vervangen en de oude waarde als resultaat te retourneren;
  • Methode toegevoegd ptr::hash om een ​​pointer of verwijzing te hashen op basis van een adres in plaats van de geadresseerde waarde;
  • Methode toegevoegd Optie::gekopieerd om de inhoud van de opties Option‹&T› of Option‹&mut T› te kopiëren;
  • Een nieuw deel van de API's is overgebracht naar de stabiele categorie, inclusief methoden die zijn gestabiliseerd
    f32::copysign,
    f64::copysign,
    RefCell::replace_with,
    RefCell::map_split,
    ptr::hash,
    Bereik::bevat,
    RangeFrom::bevat,
    RangeTo::bevat,
    AssortimentInclusief::bevat,
    RangeToInclusive::bevat en
    Optie::gekopieerd;

  • Drop_bounds-controle toegevoegd aan clippy (linter), die wordt geactiveerd bij het toevoegen van een “T: Drop”-binding aan de functie;
  • De compiler heeft ondersteuning toegevoegd voor een nieuw doelplatform
    wasm32-onbekend-wasi (interface WAS IK om WebAssembly buiten de browser te gebruiken);

  • De Rust-toolkit is aangepast voor distributies op basis van de standaard C-bibliotheek Musl.

Bron: opennet.ru

Voeg een reactie