Ukuphathwa kwenkumbulo okuzenzakalelayo ka-Rust kuqeda amaphutha lapho kushintshwa izikhombi futhi kuvikela ezinkingeni ezivela ekukhohlisweni kwenkumbulo yezinga eliphansi, njengokufinyelela endaweni yenkumbulo ngemva kokuba ikhululiwe, i-null pointer dereferences, i-buffer overruns, njll. Umphathi wephakheji uyathuthukiswa ukuze asabalalise imitapo yolwazi, aqinisekise ukuhlanganisa nokuphatha ukuncika ngephrojekthi.
Embhalweni wesimemezelo sokukhululwa okusha, abathuthukisi be-Rust bahileleka kwezombangazwe futhi benqaba ngokuqondile ukushicilela ukubuyekezwa okugcwele kwezinguquko ku-Rust 1.44 njengesibonakaliso sobumbano nababhikishi ngokumelene nobudlova bamaphoyisa, okubonisa ukuthi le ndaba ibaluleke kakhulu. kunokushintshana kolwazi lobuchwepheshe. Okuyisisekelo
- Umphathi wephakheji le-Cargo uhlanganisa umyalo "wesihlahla sempahla", obonisa igrafu yokuncika efana nesihlahla. Okunye okungeziwe inketho ethi “—duplicates” (“cargo tree -d”), ekuvumela ukuthi uhlole ukuncika kuzinguqulo ezihlukene zephakheji efanayo.
mdbook v0.3.2 (/Abasebenzisi/src/rust/mdbook)
├── ammonia v3.0.0
│ ├── html5ever v0.24.0
│ │ ├── log v0.4.8
│ │ │ └── cfg-if v0.1.9
│ │ ├── mac v0.1.1
│ │ └── markup5ever v0.9.0
│ │ ├── log v0.4.8 (*)
│ │ ├── phf v0.7.24
│ │ │ └── phf_shared v0.7.24
│ │ │ ├── siphasher v0.2.3
│ │ │ └── unicase v1.4.2
│ │ │ [ukuncika kwesakhiwo] │ │ │ └── version_check v0.1.5
... - Kuzinhlelo zokusebenza ezingaboshelwe ku-std ("#![no_std]"), ukusekela kwamasu okuhlela asynchronous kuqalwa ngokususelwe kumsebenzi othi "async", umnyakazo we-async { ... } block kanye no-opharetha othi ".await", okuyinto yenza lula ukubhala izibambi ezingavimbeli ukugeleza komyalo oyinhloko.
- Usekelo lwesikimu sencazelo yemojuli enwetshiwe yengezwe kumhlahleli. Isibonelo, ukwakhiwa okulandelayo ngeke kuveze iphutha, naphezu kokungabikho kwangempela kwemojula ethi "foo/bar/baz.rs" (isakhiwo asivumelekile ngokwesemantiki futhi singadala iphutha, kodwa izinguquko zingabonakala futhi zihlukaniswe kokuthi Ileveli yokuhlanganisa enkulu nemibandela):
#[cfg(FALSE)] i-mod foo {
ibha yemodi {
i-mod baz;
}
} - I-rustc compiler yengeze amandla okusebenzisa ifulegi elithi “-C codegen-units” kumodi yokwengeza. Ukuqaliswa kwe-catch_unwind kusetshenzwe kabusha ukuze kungabi nomthelela wokusebenza uma inqubo yokuhlehlisa ivaliwe futhi akukho okuhlukile okwenziwayo.
- Usekelo lweleveli 64 lunikelwe i-aarch64-unknown-none, aarch64-unknown-none-softfloat, arm86-apple-tvos kanye ne-x64_XNUMX-apple-tvos platform. Izinga lesithathu libandakanya ukwesekwa okuyisisekelo, kodwa ngaphandle kokuhlola okuzenzakalelayo nokushicilelwa kwezakhiwo ezisemthethweni.
- Ingxenye entsha yama-API idluliselwe esigabeni esizinzile, okuhlanganisa nokuzinza
PathBuf::with_capacity,
I-PathBuf ::umthamo,
I-PathBuf ::cacile,
I-PathBuf ::gcina,
I-PathBuf::gcina_impela,
I-PathBuf::shrink_to_fit,
{f32|f64}::ku_kungahloliwe,
Isakhiwo::qondanisa_ku,
Isakhiwo::phedi_ukuze_uqondanise,
Isakhiwo::uhlu kanye
Isakhiwo::nweba. - Imisebenzi enwetshiwe yelabhulali ejwayelekile:
- Kwengezwe okuhlukile okukhethekile kokuthi "vec![]" okubonakala ngokuqondile kokuthi Vec::new(), okuvumela okuthi "vec![]" ukuthi kusetshenziswe umongo esikhundleni sokuhlanganisa.
- Ukuqaliswa (i-impl) kwesici kungeziwe ukuze kuguqulwe::Akunaphutha
Hash . - I-OSString isebenzisa izikhombi ezihlakaniphile
I-DerefMut иI-IndexMut , ebuyisela "&mut OsStr". - Kwengezwe ukusekelwa kwe-Unicode 13.
- Kusetshenziswe ku-String
Kusuka ku-<&mut str> . - I-IoSlice isebenzisa isici
Kopisha . - I-Vec yenziwe Kusukela ku-<[T; N]>.
- I-proc_macro::I-LexError isebenzisa i-fmt::I-Display kanye nephutha.
- Isibaluli esithi “const”, esinquma ukuthi kungenzeka sisetshenziswe kunoma imuphi umongo esikhundleni sama-constants, sisetshenziswa kokuthi from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes kanye to_ne_bytes izindlela zazo zonke izinhlobo.
- Ukwesekwa okwengeziwe kokukhiqiza amalabhulali amile ngefomethi ethi ".a" esikhundleni sokuthi ".lib" yezinkundla ze-GNU ku-Windows.
- Izidingo ezincane ze-LLVM ziphakanyiselwe kunguqulo 8 ye-LLVM.
Source: opennet.ru