sistemos programavimo kalbos leidimas , įkurta Mozilla projekto. Kalba skirta atminties saugai, suteikia automatinį atminties valdymą ir suteikia įrankius, leidžiančius pasiekti aukštą užduočių lygiagretumą nenaudojant šiukšlių rinktuvo ir .
„Rust“ automatinis atminties valdymas pašalina klaidas manipuliuojant rodyklėmis ir apsaugo nuo problemų, kylančių dėl žemo lygio atminties manipuliavimo, pvz., prieigos prie atminties srities ją atlaisvinus, nulinių rodyklės nuorodų, buferio viršijimo ir kt. Kuriama paketų tvarkyklė, skirta platinti bibliotekas, užtikrinti surinkimą ir valdyti projekto priklausomybes. , leidžiančiu vienu paspaudimu gauti programai reikalingas bibliotekas. Saugykla palaikoma prieglobos bibliotekoms .
Pranešimo apie naują laidą tekste Rust kūrėjai įsitraukė į politiką ir kaip solidarumo su protestuotojais prieš policijos smurtą ženklą aiškiai atsisakė publikuoti visą Rust 1.44 pakeitimų apžvalgą, nurodydami, kad ši problema yra svarbesnė. nei keitimasis techninėmis žiniomis. Pagrindinis :
- Krovinių paketo tvarkyklė integruoja komandą „krovinio medis“, kuri rodo į medį panašią priklausomybės grafiką. Taip pat pridėta parinktis „—dublikatai“ („krovinio medis -d“), leidžianti įvertinti skirtingų to paties paketo versijų priklausomybes.
mdbook v0.3.2 (/Users/src/rust/mdbook)
├── amoniakas v3.0.0
│ ├── html5ever v0.24.0
│ │ ├── žurnalo v0.4.8
│ │ │ └── cfg-if v0.1.9
│ │ ├── mac v0.1.1
│ │ └── markup5ever v0.9.0
│ │ ├── žurnalo v0.4.8 (*)
│ │ ├── phf v0.7.24
│ │ │ └── phf_shared v0.7.24
│ │ │ ├── siphasher v0.2.3
│ │ │ └── unicase v1.4.2
│ │ │ [priklausomybės] │ │ │ └── versijos_tikrinimas v0.1.5
... - Programoms, nesusietoms su std („#![no_std]“), įdiegtas asinchroninio programavimo metodų palaikymas, pagrįstas funkcija „async“, asinchroninis judėjimas { ... } blokas ir operatorius „.await“, kurios palengvina neblokuojančių tvarkyklių pagrindinio komandų srauto rašymą.
- Išplečiamos modulių hierarchijos apibrėžimo schemos palaikymas buvo įtrauktas į analizatorių. Pavyzdžiui, ši konstrukcija nesukels klaidos, nepaisant to, kad iš tikrųjų nėra modulio „foo/bar/baz.rs“ (konstrukcija vis tiek semantiškai neteisinga ir gali sukelti klaidą, tačiau pakeitimus galima pamatyti ir išanalizuoti makrokomandos ir sąlyginio kompiliavimo lygis):
#[cfg(FALSE)] mod foo {
mod bar {
mod baz;
}
} - Rustc kompiliatorius pridėjo galimybę naudoti „-C codegen-units“ vėliavėlę prieauginiu režimu. Catch_unwind įgyvendinimas buvo perdarytas taip, kad jis neturėtų jokios įtakos našumui, jei išvyniojimo procesas yra išjungtas ir netaikomos išimtys.
- 64 lygio palaikymas teikiamas platformoms aarch64-unknown-none, aarch64-unknown-none-softfloat, arm86-apple-tvos ir x64_XNUMX-apple-tvos. Trečiasis lygis apima pagrindinį palaikymą, bet be automatinio testavimo ir oficialių versijų paskelbimo.
- Nauja API dalis buvo perkelta į stabilią kategoriją, įskaitant stabilizuotą
PathBuf::with_papacity,
PathBuf::pajėgumas,
PathBuf::clear,
PathBuf::rezervas,
PathBuf::rezervavimo_tikslus,
PathBuf::shrink_to_fit,
{f32|f64}::to_int_unchecked,
Išdėstymas::lygiuoti_į,
Išdėstymas::pad_to_align,
Išdėstymas::masyvas ir
Išdėstymas::pratęsti. - Išplėstinės standartinės bibliotekos funkcijos:
- Pridėtas specialus „vec![]“ variantas, kuris tiesiogiai atsispindi Vec::new(), leidžiantis kontekste vietoj konstantų naudoti „vec![]“.
- Pridėtas bruožo įgyvendinimas (impl), norint konvertuoti::Infallible .
- OsString įgyvendina išmaniąsias nuorodas и , grąžindamas „&mut OsStr“.
- Pridėtas „Unicode 13“ palaikymas.
- Įdiegta eilutėje .
- „IoSlice“ įgyvendina bruožą .
- Sen įgyvendinta Nuo<[T; N]>.
- proc_macro::LexError įgyvendina fmt::Display ir Error.
- Atributas „const“, kuris nustato, ar jis gali būti naudojamas bet kokiame kontekste vietoj konstantų, naudojamas metoduose from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes ir to_ne_bytes visiems sveikųjų skaičių tipams.
- Pridėtas statinių bibliotekų generavimas „.a“ formatu, o ne „.lib“ GNU platformoms sistemoje „Windows“.
- Minimalūs LLVM reikalavimai buvo padidinti iki 8 LLVM versijos.
Šaltinis: opennet.ru
