release ng system programming language , na itinatag ng proyekto ng Mozilla. Nakatuon ang wika sa kaligtasan ng memorya, nagbibigay ng awtomatikong pamamahala ng memorya, at nagbibigay ng mga tool para sa pagkamit ng mataas na paralelismo habang iniiwasan ang paggamit ng koleksyon ng basura at .
Ang awtomatikong pamamahala ng memorya ng Rust ay nag-aalis ng mga error kapag nagmamanipula ng mga pointer at nagpoprotekta laban sa mga problemang nagmumula sa mababang antas ng pagmamanipula ng memorya, tulad ng pag-access sa isang rehiyon ng memorya pagkatapos na ito ay mapalaya, mga null pointer dereference, buffer overrun, atbp. Ang isang manager ng package ay binuo upang ipamahagi ang mga aklatan, tiyakin ang pagpupulong at pamahalaan ang mga dependency ng proyekto. , na nagbibigay-daan sa iyong makuha ang mga aklatan na kailangan para sa programa sa isang pag-click. Sinusuportahan ang isang repository upang mag-host ng mga aklatan .
Sa teksto ng anunsyo para sa bagong release, ang mga developer ng Rust ay naging pampulitika at malinaw na tumanggi na mag-publish ng isang buong pangkalahatang-ideya ng mga pagbabago sa Rust 1.44 bilang pakikiisa sa mga nagpoprotesta laban sa karahasan ng pulisya, na nagsasabi na ang isyung ito ay mas mahalaga kaysa sa pagpapalitan ng teknikal na kaalaman. :
- Kasama na ngayon sa manager ng package ng Cargo ang command na "cargo tree", na nagpapakita ng parang punong graph ng mga dependencies. Ang opsyong "--duplicates" (cargo tree -d) ay naidagdag din, na nagbibigay-daan sa iyong suriin ang mga dependency sa iba't ibang bersyon ng isang pakete.
mdbook v0.3.2 (/Users/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
│ │ │ [build-dependencies] │ │ │ └── version_check v0.1.5
... - Para sa mga application na hindi nakatali sa std ("#![no_std]"), ipinatupad ang suporta para sa asynchronous programming techniques batay sa function na "async", ang async move { ... } block, at ang ".await" na operator, na nagpapadali sa pagsulat ng mga humahawak na hindi humaharang sa pangunahing daloy ng command.
- Sinusuportahan na ngayon ng parser ang isang extensible module hierarchy definition scheme. Halimbawa, hindi bubuo ng error ang sumusunod na construct, sa kabila ng aktwal na kawalan ng module na "foo/bar/baz.rs" (semantically, invalid pa rin ang construct at maaaring makabuo ng error, ngunit makikita at ma-parse ang mga pagbabago sa antas ng macro at conditional compilation):
#[cfg(FALSE)] mod foo {
mod bar {
mod baz;
}
} - Sinusuportahan na ngayon ng rustc compiler ang flag na "-C codegen-units" sa incremental mode. Ang pagpapatupad ng catch_unwind ay muling ginawa upang matiyak na wala itong epekto sa pagganap kung ang pag-unwinding ay hindi pinagana at walang mga pagbubukod na itatapon.
- Ang suporta sa Antas 3 ay pinagana para sa mga platform ng aarch64-unknown-none, aarch64-unknown-none-softfloat, arm64-apple-tvos, at x86_64-apple-tvos. Nagbibigay ang Level 3 ng pangunahing suporta, ngunit walang awtomatikong pagsubok o opisyal na paglabas ng build.
- Isang bagong bahagi ng mga API ang inilipat sa stable na kategorya, kabilang ang stabilized
PathBuf::with_capacity,
PathBuf::kapasidad,
PathBuf::malinaw,
PathBuf::reserve,
PathBuf::reserve_exact,
PathBuf::shrink_to_fit,
{f32|f64}::to_int_unchecked,
Layout::align_to,
Layout::pad_to_align,
Layout::array at
Layout::extend. - Mga pinahabang function ng karaniwang library:
- Nagdagdag ng espesyal na variant na "vec![]" na direktang ipinapakita sa Vec::new(), na nagpapahintulot sa "vec![]" na gamitin sa konteksto sa halip na mga constant.
- Ang isang pagpapatupad (impl) ng katangian ay naidagdag sa convert::Infallible .
- Ang OsString ay nagpapatupad ng mga matalinong payo и , ibinabalik ang "&mut OsStr".
- Nagdagdag ng suporta para sa Unicode 13.
- Ipinatupad sa String .
- Ipinapatupad ng IoSlice ang katangian .
- Sa Vec ipinatupad Mula<[T; N]>.
- proc_macro::Ang LexError ay nagpapatupad ng fmt::Display at Error.
- Ang flag na "const", na tumutukoy sa posibilidad ng paggamit sa anumang konteksto sa halip na mga constant, ay inilapat sa mga pamamaraang from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes at to_ne_bytes para sa lahat ng uri ng integer.
- Nagdagdag ng suporta para sa pagbuo ng mga static na aklatan sa ".a" na format sa halip na ".lib" para sa mga platform ng GNU sa Windows.
- Ang mga minimum na kinakailangan para sa LLVM ay itinaas sa LLVM 8.
Pinagmulan: opennet.ru
