Rust 1.35 programmeringsspråkutgivelse

fant sted utgivelse av systemprogrammeringsspråk Rust 1.35, utviklet av Mozilla-prosjektet. Språket fokuserer på minnesikkerhet, gir automatisk minnehåndtering og gir et middel for å oppnå høy oppgaveparallellisme uten å bruke en søppeloppsamler eller kjøretid.

Rusts automatiske minnebehandling frigjør utvikleren fra pekermanipulasjon og beskytter mot problemer som oppstår fra lavnivå minnemanipulering, for eksempel etterfrie minnetilganger, null-pekerdereferanser, bufferoverskridelser og lignende. En pakkebehandler utvikles for å distribuere biblioteker, sikre montering og administrere avhengigheter av prosjektet. Cargo, slik at du kan få bibliotekene som trengs for programmet med ett klikk. Et depot støttes for å være vert for biblioteker kasser.io.

Den viktigste innovasjoner:

  • Egenskaper FnOnce, FnMut и Fn implementert for heap-allokert eske typer Box‹dyn FnOnce›, Box‹dyn FnMut› og Box‹dyn Fn›;
  • La til mulighet støping av lukkinger til usikre funksjonspekere (utrygg fn);
  • Implementerte muligheten til å kalle makroen "dbg!" uten argumenter for å vise filnavnet og linjenummeret i stderr uten å inspisere variabelen, noe som er praktisk for å feilsøke driften av betingede uttrykk;
  • Lagt til metode " til flyttalltypene f32 og f64kopisign» for å kopiere et tegn fra ett tall til et annet;
  • Lagt til metode "inneholder", som lar deg sjekke om den angitte verdien er innenfor området;
  • Lagt til metode Ref:Celle:map_split, slik at du kan reflektere og skille den lånte RefCell-verdien for ulike komponenter av de lånte dataene;
  • Lagt til metode RefCell::erstatt_med å erstatte gjeldende RefCell-verdi og returnere den gamle verdien som resultat;
  • Lagt til metode ptr::hash å hash en peker eller referanse av en adresse i stedet for den adresserte verdien;
  • Lagt til metode Alternativ::kopieres for å kopiere innholdet av alternativene Option‹&T› eller Option‹&mut T›;
  • En ny del av API-er er overført til stabil-kategorien, inkludert metoder som er stabilisert
    f32::kopitegn,
    f64::kopitegn,
    RefCell::erstatt_med,
    RefCell::map_split,
    ptr::hash,
    Range::inneholder,
    RangeFrom::inneholder,
    RangeTo::inneholder,
    RangeInclusive::inneholder,
    RangeToInclusive::inneholder og
    Alternativ::kopiert;

  • Lagt til drop_bounds check til clippy (linter), som utløses når du legger til en "T: Drop"-binding til funksjonen;
  • Kompilatoren har lagt til støtte for en ny målplattform
    wasm32-unknown-wasi (grensesnitt VAR JEG å bruke WebAssembly utenfor nettleseren);

  • Rust-verktøysettet er tilpasset distribusjoner basert på standard C-bibliotek Musl.

Kilde: opennet.ru

Legg til en kommentar