ืื ืืขืืืื ื ืคืื ืืขืจ ืืขื ืขืจืึทื-ืฆืืืขืง ืคึผืจืึธืืจืึทืืืื ื ืฉืคึผืจืึทื Rust 1.75, ืืขืืจืื ืืขื ืืืจื ืื ืืึธืืืืืึท ืคึผืจืืืขืงื, ืึธืืขืจ ืืืฆื ืืขืืืขืืึธืคึผืขื ืืื ืืขืจ ืื ืึธืืกืคึผืืกืื ืคืื ืื ืคืจืืึท ื ืึทื-ื ืืฅ ืึธืจืืึทื ืืืึทืฆืืข Rust Foundation, ืืื ืืจืืืก. ืื ืฉืคึผืจืึทื ืืื ืคืึธืืงืืกื ืืืืฃ ืืืงืึธืจื ืืืืขืจืงืืึทื ืืื ืืื ืื ืืืื ืฆื ืืขืจืืจืืืื ืืืื ืคึผืึทืจืึทืืขืืืืึทื ืืื ืึทืจืืขื ืืืจืืคืืจืื ื, ืืื ืืืกืืืืื ืื ื ืืฆื ืคืื ืึท ืืืกื ืงืึทืืขืงืืขืจ ืืื ืจืื ืืืืข (ืจืื ืืืืข ืืื ืจืืืืกื ืฆื ืืงืขืจืืืง ืื ืืืืึทืืืืืืฉืึทื ืืื ืืืฉืึทืื ืคืื ืื ื ืึธืจืืึทื ืืืืืืึธืืขืง).
ืจืึทืกื ืก ืืึผืจืื ืคืึทืจืืืึทืืืื ื ืืขืงื ืืงืก ืืึทืคืจืืึทืขื ืื ืืขืืืขืืึธืคึผืขืจ ืคืื ืืืึทืื ืืึทื ืืคึผืืึทืืืืฉืึทื ืขืจืจืึธืจืก ืืื ืืึทืฉืืฆื ืงืขืื ืคึผืจืึธืืืขืืก ืืืึธืก ืฉืืืืขื ืคึฟืื ื ืืืขืจืืง-ืืืจืื ืืึผืจืื ืืึทื ืืคึผืืึทืืืืฉืึทื, ืึทืืึท ืืื ื ืึธื-ืคืจืื ืึทืงืกืขืก, ื ืึทื ืืืึทืื ืืืคืขืจืึทื ืกืื, ืืึทืคืขืจ ืึธืืืืขืจืจืึทื ื, ืืื ืื ืืื. ืฆื ืคืึทืจืฉืคึผืจืืืื ืืืืืจืขืจืื, ืขื ืฉืืจ ืคึฟืึทืจืืึทืืืื ื ืืื ืคืืจื ืืืคึผืขื ืืึทื ืกืื, ืื ืคึผืจืืืขืงื ืืื ืืขืืืขืืึธืคึผืื ื ืื ืงืึทืจืืึธ ืคึผืขืงื ืคืึทืจืืืึทืืืขืจ. ืื crates.io ืจืืคึผืึทืืึทืืึธืจื ืืื ืืขืฉืืืฆื ืคึฟืึทืจ ืืึธืกืืื ื ืืืืืจืขืจืื.
ืืืงืึธืจื ืืืืขืจืงืืึทื ืืื ืขื ืคืึธืจืกื ืืื ืจืืกื ืืื ืื ืงืึทืืคึผืืืืื ื ืฆืืื ืืืจื ืจืขืคึฟืขืจืขื ืฅ ืงืึธื ืืจืึธืืืจืื ื, ืึธืืืืฉืขืงื ืึธืื ืขืจืฉืืคึผ ืืจืึทืงืื ื, ืึทืืืืฉืขืงื ืืขืื (ืกืงืึธืคึผืื ื) ืืึทืืจืึทืืืื ื, ืืื ืืึผืจืื ืึทืงืกืขืก ืืคืฉืืฆืื ื ืืื ืจืื ืืืืข. ืืฉืึทืืืขืจ ืืืื ืคึผืจืึธืืืืืขืก ืฉืืฅ ืงืขืื ืื ืืึทืืืฉืขืจ ืึธืืืืขืจืคืืึธืื, ืจืืงืืืืืขืจื ืึทื ืื ืืืขืจืืึทืืึทื ืืืึทืืืขืก ืืขื ืขื ืื ืืืืึทืืืืื ืืืืืขืจ ื ืืฆื, ืืื ืืขืกืขืจ ืืขืืช ืืึทื ืืืื ื ืืื ืืขืจ ื ืึธืจืืึทื ืืืืืืึธืืขืง, ื ืืฆื ืืขื ืืึทืืจืืฃ ืคืื ืืืคึผืืืึทืืึทืืึทื ืืึทืืืืึทืื ืืื ืืืขืจืืึทืืึทืื ืืืจื ืคืขืืืงืืึทื, ืืื ืึธืคืคืขืจืก ืฉืืึทืจืง ืกืืึทืืืง ืืืืคึผืื ื ืฆื ืืื ืึทืืืื ืืึทืืืฉืืงืึทื ืขืจืจืึธืจืก.
ืืืืคึผื ืืืืืฉืื:
- ืฆืืืขืืขืื ืื ืคืืืืงืืื ืฆื ื ืืฆื "async fn" ืืื ืื "-> ืืืคึผื ืืจืืื" ื ืึธืืืืืฉืึทื ืืื ืคึผืจืืืืึทื ืืจืืืฅ. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ื ืืฆื "-> ืืืคึผื ืืจืืื" ืืืจ ืงืขื ืขื ืฉืจืืึทืื ืึท ืืจืืื ืืืคึฟื ืืืึธืก ืงืขืจื ืึทื ืืืขืจืึทืืึธืจ: trait Container {fn items(&self) -> impl Iterator; } impl ืงืึทื ืืืื ืขืจ ืคึฟืึทืจ MyContainer {fn items(&self) -> impl Iterator {self.items.iter().cloned()}}
ืืืจ ืงืขื ื ืืืื ืฉืึทืคึฟื ืืจืืืฅ ื ืืฆื "async fn": trait HttpService {async fn fetch(&self, url: URL) -> HtmlBody; // ืืืขื ืืืื ืืงืกืคึผืึทื ืืื ืฆื: // fn fetch(&ืืื, URL: URL) -> ืืืคึผื ืฆืืงืื ืคึฟื; }
- ืฆืืืขืืืืื ืึทืคึผื ืคึฟืึทืจ ืงืึทืืงืืึทืืืืืื ื ืืืื ืึธืคืกืขืฅ ืงืึธืจืขืื ืฆื ืคึผืืื ืืขืจื. ืืืขื ืืจืืขืื ืืื ื ืึทืงืขื ืคึผืืื ืืขืจื ("* ืงืึธื ืกื ื" ืืื "* ืืื ื"), ืึทืคึผืขืจืืืฉืึทื ื ืงืขื ืืืื ืคืืจืืื ืื ืฆื ืืืืื ืึท ืคืึธืืึธ ืฆื ืื ืืืึทืื. ืืื ืึทืืขืจ, ืคึฟืึทืจ ืืขื ืขืก ืืื ืืขืืืขื ืืขืืืขื ืฆื ื ืืฆื ืึท ืงืึทื ืกืืจืึทืงืฉืึทื ืืื ":: ืืืืื (1)", ืึทืืื ื ืื ื ืืืขืจ ืคืื ืืืืขืก ืงืึธืจืึทืกืคึผืึทื ืืื ื ืฆื ืื ืืจืืืก ืคืื "ืืจืืืก_ืคืื::()". ืื ื ืืึทืข ืึทืคึผื ืกืืืคึผืืึทืคืืื ืืขื ืึธืคึผืขืจืึทืฆืืข ืืื ืืืื ืขืก ืืขืืืขื ืฆื ืืึทื ืืคึผืืืืจื ืืืืืข ืึธืคืกืขืฅ ืึธื ืขืจืฉืืขืจ ืงืึทืกืืื ื ืื ืืืืคึผืก ืฆื "* const u8" ืึธืืขืจ "* mut u8".
- ืืืึทืื:: ืืืืืข_ืึทืื
- ืืืึทืื::ืืืื_ืึธืคืกืขื
- ืืืึทืื:: ืืืืืข_ืึธืคืกืขื_ืคึฟืึธื
- ืืืึทืื :: ืืืืืข_ืกืื
- pointer::wrapping_byte_add
- ืืืึทืื :: ืืืจืึทืคึผืื ื_ืืืืข_ืึธืคืกืขื
- ืืืึทืื :: wrapping_byte_sub
- ืคืึธืจืืขืฆื ืึทืจืืขื ืฆื ืคืึทืจืืจืขืกืขืจื ืื ืคืึธืจืฉืืขืืื ื ืคืื ืื ืจืึทืกืง ืงืึทืืคึผืืืืขืจ. ืฆืืืขืืขืื ืื BOLT ืึธืคึผืืืืืืขืจ, ืืืึธืก ืืืืคื ืืื ืื ืคึผืึธืกืื-ืืื ืง ืืื ืข ืืื ื ืืฆื ืืื ืคึฟืึธืจืืึทืฆืืข ืคึฟืื ืึท ืคืึทืจ-ืฆืืืขืืจืืื ืืืจืืคืืจืื ื ืคึผืจืึธืคืื. ื ืืฆื BOLT ืึทืืึทืื ืืืจ ืฆื ืคืึทืจืืืืขืจื ืื ืืืจืืคืืจืื ื ืคืื ืงืึทืืคึผืืืืขืจ ืืื ืืืขืื 2% ืืืจื ืืฉืึทื ืืื ื ืื ืืืืกืืืื ืคืื ืื librustc_driver.so ืืืืืืึธืืขืง ืงืึธื ืคึฟืึทืจ ืืขืจ ืขืคืขืงืืืื ื ืืฆื ืคืื ืื ืคึผืจืึทืกืขืกืขืจ ืงืึทืฉ.
ืึทืจืืึทื ืืขืจืขืื ื ืื ืื ืื Rustc ืงืึทืืคึผืืืืขืจ ืืื ืื "-Ccodegen-units = 1" ืึธืคึผืฆืืข ืฆื ืคึฟืึทืจืืขืกืขืจื ืื ืงืืืึทืืืืขื ืคืื ืึทืคึผืืึทืืึทืืืืฉืึทื ืืื LLVM. ืื ืืืจืืืขืงืึธืื ืืขืกืฅ ืืืืึทืื ืึท ืคืึทืจืืจืขืกืขืจื ืืื ืคืึธืจืฉืืขืืื ื ืืื ืืขื ืคืึทื ืคืื ืื "-Ccodegen-units = 1" ืืืืขื ืืื ืืขืขืจืขื 1.5%. ืื ืฆืืืขืืืืื ืึธืคึผืืืืืืึทืืืึธื ืก ืืขื ืขื ืขื ืืืืึทืื ืืืจื ืคืขืืืงืืึทื ืืืืื ืคึฟืึทืจ ืื x86_64-unknown-linux-gnu ืคึผืืึทืืคืึธืจืืข.
ืื ืคืจืืขืจ ืืขืจืืื ื ืึธืคึผืืืืืืึทืืืึธื ืก ืืขื ืขื ืืขืกืืขื ืืืจื Google ืฆื ืจืขืืืฆืืจื ืื ืืืืขื ืฆืืื ืคืื ืึทื ืืจืืื ืคึผืืึทืืคืึธืจืืข ืงืึทืืคึผืึธืื ืึทื ืฅ ืืขืฉืจืืื ืืื ืจืืกื. ืื ื ืืฆื ืคืื "-C codegen-units = 1" ืืืขื ืื ืื ืึทื ืืจืืื ืขืจืืืืื ืืื ืื ืฆื ืจืขืืืฆืืจื ืื ืืจืืืก ืคืื ืืขื ืืึธืึธืืงืื ืืื 5.5% ืืื ืคืึทืจืืจืขืกืขืจื ืืืึทื ืคืึธืจืฉืืขืืื ื ืืื 1.8%, ืืฉืขืช ืื ืืืืขื ืฆืืื ืคืื ืื ืืึธืึธืืงืื ืืื ืึผืืขื ืืึทืืึทืื.
ืืขืื ืืื ืง-ืฆืืื ืืืกื ืืึทืืืื ื ("--gc-sections") ืืขืืจืืื ืื ืคืึธืจืฉืืขืืื ื ืืขืืืื ืขื ืึทืจืืืฃ ืฆื 1.9%, ืขื ืืืืึทืืื ื ืืื ืง-ืฆืืื ืึทืคึผืืึทืืึทืืืืฉืึทื (LTO) ืึทืจืืืฃ ืฆื 7.7%, ืืื ืคึผืจืึธืคืื-ืืืืืจื ืึทืคึผืืึทืืึทืืืืฉืึทื ื (ืคึผืืึธ) ืึทืจืืืฃ ืฆื 19.8%. ืืื ืื ืืขืฆื, ืึธืคึผืืืืืืึทืืืึธื ืก ืืขื ืขื ืืขืืืขื ืื ืืื ืื BOLT ื ืืฆื, ืืืึธืก ืืขืืืื ืขืก ืืขืืืขื ืฆื ืคืึทืจืืจืขืกืขืจื ืื ืืืืขื ืืืืงืืึทื ืฆื 24.7%, ืึธืืขืจ ืื ืืจืืืก ืคืื ืื ืืึธืึธืืงืื ืืขืืืืงืกื ืืื 10.9%.
- ื ื ืืึทืข ืืืื ืคืื ืื API ืืื ืืจืืืขืจืืขืคืืจื ืฆื ืืขืจ ืงืึทืืขืืึธืจืืข ืคืื โโืกืืึทืืื, ืึทืจืืึทื ืืขืจืขืื ื ืื ืืขืืืึธืืก ืืื ืืืคึผืืึทืืึทื ืฅ ืคืื ืืจืืืฅ ืืขื ืขื ืกืืืืืึทืืืืื:
- ืึทืืึธืืืฉืข *:: from_ptr
- ืคืืืขืืืืก
- FileTimesExt
- ืืขืงืข::set_modified
- ืืขืงืข::set_times
- IPAddr::to_canonical
- Ipv6Addr::to_canonical
- ืึธืคึผืฆืืข::as_slice
- ืึธืคึผืฆืืข::as_mut_slice
- ืืืึทืื:: ืืืืืข_ืึทืื
- ืืืึทืื::ืืืื_ืึธืคืกืขื
- ืืืึทืื:: ืืืืืข_ืึธืคืกืขื_ืคึฟืึธื
- ืืืึทืื :: ืืืืืข_ืกืื
- pointer::wrapping_byte_add
- ืืืึทืื :: ืืืจืึทืคึผืื ื_ืืืืข_ืึธืคืกืขื
- ืืืึทืื :: wrapping_byte_sub
- ืื "ืงืึธื ืกื" ืึทืืจืืืืื, ืืืึธืก ืืืืขืจืืึทื ื ืื ืืขืืืขืืงืืื ืคืื ื ืืฆื ืขืก ืืื ืงืืื ืงืึธื ืืขืงืกื ืึทื ืฉืืึธื ืคืื ืงืึทื ืกืืึทื ืฅ, ืืื ืืขื ืืฆื ืืื ืื ืคืึทื ืืงืฉืึทื ื:
- Ipv6Addr::to_ipv4_mapped
- MaybeUninit::assume_init_read
- MaybeUninit :: ื ืื
- mem :: ืืืกืงืจืืืื ืึทื ื
- mem :: ื ืื
- ืื ืืจืื ืืืจืื ืคืื ืฉืืืฆื ืืื ืืืคึผืืึทืืขื ืึทื ืคึฟืึทืจ ืื csky-unknown-linux-gnuabiv2hf, i586-unknown-netbsd ืืื mipsel-unknown-netbsd ืคึผืืึทืืคืึธืจืืก. ืื ืืจืื ืืืจืื ืื ืืืึทืืืื ืืงืขืจืืืง ืฉืืืฆื, ืึธืืขืจ ืึธื ืึธืืึทืืืืืื ืืขืกืืื ื, ืืจืืืกืืขืื ืืึทืึทืืืขืจ ืืืืขื ืึธืืขืจ ืงืึธื ืืจืึธืืืจื ืฆื ืื ืงืึธื ืงืขื ืขื ืืืื ืืขืืืื.
ืืื ืืขืจืฆื, ืืืจ ืงืขื ืขื ืืึทืืขืจืงื ืึท ื ืืึทืข ืืืขืจืกืืข ืคืื โโโโืืขืจ ืืขืจืืื ืคึผืจืืืขืงื, ืืืึธืก ืืขืืืขืืึธืคึผืก ืึท ืกืคึผืขืฉืึทืืืืื ืงืขืจื (ืื ืืงืขืจื ืขื), ืืขืฉืจืืื ืืื ืื ืจืืกื ืฉืคึผืจืึทื, ืคึผืจืึทืืืืืืื ื ืืืฉืืจืื ืคึฟืึทืจ ืืืืขื ืืื-ืงืึทื ืืืื ื ืึทืคึผืืึทืงืืืฉืึทื ื ืืืึธืก ืงืขื ืขื ืืืืคื ืืืืฃ ืฉืคึผืืฅ ืคืื ืึท ืืืืคึผืขืจืืืืืืขืจ ืึธืืขืจ ื ืึทืงืขื ืืึทืื ืืืึทืจื ืึธื ื ืึธื ืืืึทืขืจืก ืืื ืึธื ืึทื ืึธืคึผืขืจืืืืื ื ืกืืกืืขื. ืืืขื ืืขืืืื, ืื ืึทืคึผืืึทืงืืืฉืึทื ืืื ืกืืึทืืืงืื ืืื ืืงื ืฆื ืึท ืืืืืืึธืืขืง, ืืืึธืก ืื ืืืคึผืขื ืืึทื ืืื ืืืคึผืืึทืืึทื ืฅ ืึทืืข ืื ื ืืืืืง ืคืึทื ืืงืฉืึทื ืึทืืืื, ืึธื ืืืื ืืืื ืฆื ืื ืึทืก ืงืขืจื ืืื ืกืืกืืขื ืืืืืจืขืจืื. ืื ืคึผืจืืืขืงื ืงืึธื ืืื ืคืื ืื ืืขืจืืขืืืืื ืืื ืืขืจ Apache 2.0 ืืื MIT ืืืืกืึทื ืกืื. ืึทืกืขืืืื ืืื ืืขืฉืืืฆื ืคึฟืึทืจ ืกืืึทื ื-ืึทืืืื ืืืจืืคืืจืื ื ืคืื ืึทืคึผืืึทืงืืืฉืึทื ื ืืขืฉืจืืื ืืื Rust, Go, Fortran, C ืืื C ++. ืื ืคึผืจืืืขืงื ืืื ืืืื ืืขืืืขืืึธืคึผืื ื ืืืื ืืืืืขื ืข ืืึธืึธืืืึธืึทืืขืจ ืืืึธืก ืึทืืึทืื ืืืจ ืฆื ืงืึทืืขืจ Hermit ื ืืฆื QEMU ืืื KVM.
ืืงืืจ: opennet.ru