Rust 1.35 programspråk release

tog plats version av systemprogrammeringsspråk Rost 1.35, utvecklad av Mozilla-projektet. Språket fokuserar på minnessäkerhet, tillhandahåller automatisk minneshantering och tillhandahåller ett sätt att uppnå hög arbetsparallellism utan att använda en sophämtare eller körtid.

Rusts automatiska minneshantering frigör utvecklaren från pekarmanipulation och skyddar mot problem som uppstår från minnesmanipulation på låg nivå, såsom efterfri minnesåtkomst, nollpekaredereferenser, buffertöverskridningar och liknande. En pakethanterare utvecklas för att distribuera bibliotek, säkerställa montering och hantera beroenden av projektet. Laddning, vilket gör att du kan få de bibliotek du behöver för programmet med ett klick. Ett arkiv stöds för värdbibliotek lådor.io.

Den huvudsakliga innovationer:

  • Egenskaper FnOnce, FnMut и Fn implementeras för heap-allokerade förpackade typer Box‹dyn FnOnce›, Box‹dyn FnMut› och Box‹dyn Fn›;
  • Lagt till möjlighet gjutning av förslutningar till osäkra funktionspekare (osäkra fn);
  • Implementerade möjligheten att kalla makrot "dbg!" utan argument för att visa filnamnet och radnumret i stderr utan att inspektera variabeln, vilket är praktiskt för att felsöka driften av villkorliga uttryck;
  • Lade till metod " till flyttalstyperna f32 och f64copysign» för att kopiera ett tecken från ett nummer till ett annat;
  • Tillagd metod "innehåller“, som låter dig kontrollera om det angivna värdet ligger inom intervallet;
  • Tillagd metod Ref:Cell:map_split, så att du kan reflektera och separera det lånade RefCell-värdet för olika komponenter i den lånade datan;
  • Tillagd metod RefCell::ersätt_med att ersätta det nuvarande RefCell-värdet och returnera det gamla värdet som resultat;
  • Tillagd metod ptr::hash att hasha en pekare eller referens genom en adress snarare än det adresserade värdet;
  • Tillagd metod Alternativ::kopieras för att kopiera innehållet i alternativen Option‹&T› eller Option‹&mut T›;
  • En ny del av API:er har överförts till den stabila kategorin, inklusive metoder som har stabiliserats
    f32::copysign,
    f64::copysign,
    RefCell::ersätt_med,
    RefCell::map_split,
    ptr::hash,
    Range::innehåller,
    RangeFrom::innehåller,
    RangeTo::innehåller,
    RangeInclusive::innehåller,
    RangeToInclusive::innehåller och
    Option::copied;

  • Lade till drop_bounds check till clippy (linter), som utlöses när man lägger till en "T: Drop"-bindning till funktionen;
  • Kompilatorn har lagt till stöd för en ny målplattform
    wasm32-unknown-wasi (gränssnitt VAR JAG att använda WebAssembly utanför webbläsaren);

  • Rust verktygslådan är anpassad för distributioner baserade på standard C-biblioteket Musl.

Källa: opennet.ru

Lägg en kommentar