Ang awtomatik nga pagdumala sa panumduman sa Rust nagwagtang sa mga sayup kung nagmaniobra sa mga pointer ug nanalipod batok sa mga problema nga naggikan sa ubos nga lebel sa pagmaniobra sa panumduman, sama sa pag-access sa usa ka rehiyon sa panumduman human kini gibuhian, null pointer dereferences, buffer overruns, ug uban pa. Usa ka tagdumala sa pakete ang gipalambo aron sa pag-apod-apod sa mga librarya, pagsiguro sa asembliya ug pagdumala sa mga dependency sa proyekto.
Π ΡΠ΅ΠΊΡΡΠ΅ Π°Π½ΠΎΠ½ΡΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ Π²ΡΠΏΡΡΠΊΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Rust Π²Π²ΡΠ·Π°Π»ΠΈΡΡ Π² ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠ²Π½ΠΎ ΠΎΡΠΊΠ°Π·Π°Π»ΠΈΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΠΎΠ±Π·ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Rust 1.44 Π² Π·Π½Π°ΠΊ ΡΠΎΠ»ΠΈΠ΄Π°ΡΠ½ΠΎΡΡΠΈ Ρ ΠΏΡΠΎΡΠ΅ΡΡΡΡΡΠΈΠΌΠΈ ΠΏΡΠΎΡΠΈΠ² ΠΏΠΎΠ»ΠΈΡΠ΅ΠΉΡΠΊΠΎΠ³ΠΎ Π½Π°ΡΠΈΠ»ΠΈΡ, ΡΠΊΠ°Π·Π°Π², ΡΡΠΎ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π²Π°ΠΆΠ½Π΅Π΅ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅
- Π ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ Cargo ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«cargo treeΒ», Π²ΡΠ²ΠΎΠ΄ΡΡΠ°Ρ Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡΠΉ Π³ΡΠ°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ Β«βduplicatesΒ» (Β«cargo tree -dΒ»), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΎΡΠ΅Π½ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π² ΡΠ°Π·Π½ΡΡ
Π²Π΅ΡΡΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°.
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
... - ΠΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΊ std (Β«#![no_std]Β»), ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ Β«asyncΒ», Π±Π»ΠΎΠΊΠ΅ async move { β¦ } ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ Β«.awaitΒ», ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΡΠΎΡΠ°ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΠΊΠΎΠΌΠ°Π½Π΄.
- Π ΠΏΠ°ΡΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΡ
Π΅ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ Π½Π΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ ΠΎΡΠΈΠ±ΠΊΠΈ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ Β«foo/bar/baz.rsΒ» (ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ° ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΠΈ ΡΡΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ):
#[cfg(FALSE)] mod foo {
mod bar {
mod baz;
}
} - Π ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ΅ rustc Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π°Π³Π° Β«-C codegen-unitsΒ» Π² ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ catch_unwind, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²Π»ΠΈΡΠ½ΠΈΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, Π΅ΡΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΡΠ½ ΠΏΡΠΎΡΠ΅ΡΡ Β«ΡΠ°Π·ΠΌΠΎΡΠΊΠΈΒ» (unwinding) ΠΈ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ ΡΡΠ΅ΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈ Π΄Π»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌ aarch64-unknown-none, aarch64-unknown-none-softfloat, arm64-apple-tvos ΠΈ x86_64-apple-tvos. Π’ΡΠ΅ΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ Π±Π°Π·ΠΎΠ²ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ, Π½ΠΎ Π±Π΅Π· Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ±ΠΎΡΠΎΠΊ.
- Usa ka bag-ong bahin sa mga API ang gibalhin sa stable nga kategorya, lakip ang gi-stabilize
PathBuf::with_capacity,
PathBuf::capacity,
PathBuf::clear,
PathBuf::reserve,
PathBuf::reserve_exact,
PathBuf::shrink_to_fit,
{f32|f64}::to_int_unchecked,
Layout::align_to,
Layout::pad_to_align,
Layout::array ΠΈ
Layout::extend. - Gipadako nga mga gimbuhaton sa standard library:
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Β«vec![]Β», Π½Π°ΠΏΡΡΠΌΡΡ ΠΎΡΡΠ°ΠΆΠ°Π΅ΠΌΡΠΉ Π² Vec::new(), ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Β«vec![]Β» Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ.
- Π convert::Infallible Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ (impl) ΡΠΈΠΏΠ°ΠΆΠ°
Hash . - Π OsString ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΠΌΠ½ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ
DerefMut ΠΈIndexMut , Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠ΅ Β«&mut OsStrΒ». - ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Unicode 13.
- Π String ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½
From<&mut str> . - Π IoSlice ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠΈΠΏΠ°ΠΆ
Kopyaha . - Π Vec<T> ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ From<[T; N]>.
- Π proc_macro::LexError ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ fmt::Display ΠΈ Error.
- ΠΡΠΈΠ·Π½Π°ΠΊ Β«constΒ», ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ½ Π² ΠΌΠ΅ΡΠΎΠ΄Π°Ρ from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes ΠΈ to_ne_bytes Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ².
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ Β«.aΒ» Π²ΠΌΠ΅ΡΡΠΎ Β«.libΒ» Π΄Π»Ρ GNU-ΠΏΠ»Π°ΡΡΠΎΡΠΌ Π΄Π»Ρ Windows.
- ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ LLVM ΠΏΠΎΠ΄Π½ΡΡΡ Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ LLVM 8.
Source: opennet.ru