เบเบฒเบเบเปเบญเบเบเบฒเบชเบฒเบเบฒเบเบเบฝเบเปเบเบฅเปเบเบฅเบกเบฅเบฐเบเบปเบ Rust 1.57, เบชเปเบฒเบเบเบฑเปเบเบเบถเปเบเปเบเบเปเบเบเบเบฒเบ Mozilla, เปเบเปเปเบเบเบฑเบเบเบธเบเบฑเบเปเบเปเบเบทเบเบเบฑเบเบเบฐเบเบฒเบเบฒเบเปเบเปเบเบฒเบเบญเบธเบเบฐเบเปเบฒเบเบญเบเบญเบปเบเบเบฒเบเปเบญเบเบฐเบฅเบฒเบเบเบตเปเบเปเปเบซเบงเบฑเบเบเบปเบเบเปเบฒเปเบฅ Rust Foundation, เปเบเปเบเบทเบเบเบฑเบเบเบตเบกเบกเบฒ. เบเบฒเบชเบฒเบชเบธเบกเปเบชเปเบเบงเบฒเบกเบเบญเบเปเบเบเบญเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ, เบชเบฐเบซเบเบญเบเบเบฒเบเบเบธเปเบกเบเบญเบเบเบงเบฒเบกเบเบปเบเบเปเบฒเบญเบฑเบเบเบฐเปเบเบกเบฑเบ, เปเบฅเบฐเบชเบฐเบซเบเบญเบเบงเบดเบเบตเบเบฒเบเปเบเบทเปเบญเบเบฑเบเบฅเบธเบงเบฝเบเบเบฒเบเบเบฐเบซเบเบฒเบเบชเบนเบเปเบเบเบเปเปเบกเบตเบเบฒเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเปเบเบฑเบเบเบตเปเปเบซเบเบทเปเบญเบซเบผเบท runtime (runtime เบซเบผเบธเบเบฅเบปเบเปเบเบฑเบเบเบทเปเบเบเบฒเบเปเบเบทเปเบญเบเบเบปเปเบเปเบฅเบฐเบเบฒเบเบเปเบฒเบฅเบธเบเบฎเบฑเบเบชเบฒเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบกเบฒเบเบเบฐเบเบฒเบ).
เบเบฒเบเบเบฑเบเบเบฒเบเบเบงเบฒเบกเบเบปเบเบเปเบฒเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบญเบ Rust เบเปเบฒเบเบฑเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเปเบเปเบงเบฅเบฒเบเบตเป manipulating pointers เปเบฅเบฐเบเปเบญเบเบเบฑเบเบเบฑเบเบซเบฒเบเบตเปเปเบเบตเบเบเบฒเบเบเบฒเบเบซเบกเบนเบเปเบเปเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบฅเบฐเบเบฑเบเบเปเปเบฒ, เปเบเบฑเปเบ: เบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฒเบเบเบทเปเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบซเบผเบฑเบเบเบฒเบเบเบตเปเบกเบฑเบเปเบเปเบเบทเบเบเบปเบเบเปเบญเบ, null pointer dereferences, buffer overruns, เปเบฅเบฐเบญเบทเปเบเป. เปเบเบทเปเบญเปเบเบเบขเบฒเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบ, เบฎเบฑเบเบเบฐเบเบฑเบเบเบฒเบเบเบฐเบเบญเบเปเบฅเบฐเบเบฒเบเบเบธเปเบกเบเบญเบเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบช, เปเบเบเบเบฒเบเบเปเบฒเบฅเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบนเปเบเบฑเบเบเบฒเบเบเบธเบเบชเบดเบเบเปเบฒ. เบเบฑเบเปเบเบฑเบ crates.io เปเบเปเบฎเบฑเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบฑเบเปเบเบปเปเบฒเบเบฒเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบ.
เบเบฐเบงเบฑเบเบเบฐเบเปเบฒเบเบปเปเบเบเป:
- ะกัะฐะฑะธะปะธะทะธัะพะฒะฐะฝะพ ะธัะฟะพะปัะทะพะฒะฐะฝะธะต ะผะฐะบัะพัะฐ ยซpanic!ยป ะฒ ะบะพะฝัะตะบััะฐั , ัะพะทะดะฐะฒะฐะตะผัั ะฟัะธ ะบะพะผะฟะธะปััะธะธ, ัะฐะบะธั ะบะฐะบ ะพะฑััะฒะปะตะฝะธั ยซconst fnยป. ะัะพะผะต ัะพะณะพ, ะฟะพะผะธะผะพ ะธัะฟะพะปัะทะพะฒะฐะฝะธั ยซpanic!ยป ะฒ const-ะพะฑััะฒะปะตะฝะธัั ัะฐะทัะตัะตะฝะพ ะธัะฟะพะปัะทะพะฒะฐะฝะธะต ะผะฐะบัะพัะฐ ยซassert!ยป ะธ ะฝะตะบะพัะพััั ะดััะณะธั API ััะฐะฝะดะฐััะฝะพะน ะฑะธะฑะปะธะพัะตะบะธ. ะกัะฐะฑะธะปะธะทะฐัะธั ะฟะพะบะฐ ะฝะต ะพั ะฒะฐััะฒะฐะตั ะฒัั ะธะฝััะฐััััะบัััั ัะพัะผะฐัะธัะพะฒะฐะฝะธั, ะฟะพััะพะผั ะฒ ัะตะบััะตะผ ะฒะธะดะต ะผะฐะบัะพั ยซpanic!ยป ะผะพะถะตั ะธัะฟะพะปัะทะพะฒะฐัััั ัะพะปัะบะพ ัะพ ััะฐัะธัะตัะบะธะผะธ ัััะพะบะฐะผะธ (panic!(ยซโฆยป)) ะธะปะธ ั ะพะดะฝะธะผ ะธะฝัะตัะฟะพะปะธัะพะฒะฐะฝะฝัะผ ะทะฝะฐัะตะฝะธะตะผ ยซ&strยป ะฟัะธ ะฟะพะดััะฐะฝะพะฒะบะต (panic!(ยซ{}ยป, a)), ะบะพัะพัะพะต ะดะพะปะถะฝะพ ะพะณัะฐะฝะธัะธะฒะฐัััั ะฟะพะดััะฐะฝะพะฒะบะพะน ยซ{}ยป ะฑะตะท ัะฟะตัะธัะธะบะฐัะพัะพะฒ ัะพัะผะฐัะธัะพะฒะฐะฝะธั ะธ ะดััะณะธั ัะธะฟะฐะถะตะน. ะ ะฑัะดััะตะผ ะฟัะธะผะตะฝะธะผะพััั ะผะฐะบัะพัะพะฒ ะฒ ะบะพะฝััะฐะฝัะฝัั ะบะพะฝัะตะบััะฐั ะฑัะดะตั ัะฐััะธัะตะฝะฐ, ะฝะพ ััะฐะฑะธะปะธะทะธัะพะฒะฐะฝะฝัั ะฒะพะทะผะพะถะฝะพััะตะน ัะถะต ะดะพััะฐัะพัะฝะพ ะดะปั ะฒัะฟะพะปะฝะตะฝะธั assert-ะฟัะพะฒะตัะพะบ ะฝะฐ ััะฐะฟะต ะบะพะผะฟะธะปััะธะธ: const _: () = assert!(std::mem::size_of::<u64>() == 8); const _: () = assert!(std::mem::size_of::<u8>() == 1);
- ะ ะฟะฐะบะตัะฝะพะผ ะผะตะฝะตะดะถะตัะต Cargo ัะฐะทัะตัะตะฝะพ ะธัะฟะพะปัะทะพะฒะฐะฝะธะต ะฟัะพัะธะปะตะน ั ะฟัะพะธะทะฒะพะปัะฝัะผะธ ะธะผะตะฝะฐะผะธ, ะฝะต ะพะณัะฐะฝะธัะตะฝะฝัะผะธ ยซdevยป, ยซreleaseยป, ยซtestยป ะธ ยซbenchยป. ะะฐะฟัะธะผะตั, ะดะปั ะฒะบะปััะตะฝะธั ะพะฟัะธะผะธะทะฐัะธะธ ะฝะฐ ััะฐะฟะต ัะฒัะทัะฒะฐะฝะธั (LTO) ัะพะปัะบะพ ะฟัะธ ัะพัะผะธัะพะฒะฐะฝะธั ัะธะฝะฐะปัะฝัั ัะฑะพัะพะบ ะฟัะพะดัะบัะฐ ะผะพะถะฝะพ ะฒ Cargo.toml ัะพะทะดะฐัั ะฟัะพัะธะปั ยซproductionยป ะธ ะดะพะฑะฐะฒะธัั ะฒ ะฝะตะณะพ ัะปะฐะณ ยซlto = trueยป. ะัะธ ััะพะผ ะฟัะธ ะพะฟัะตะดะตะปะตะฝะธะธ ัะพะฑััะฒะตะฝะฝัั ะฟัะพัะธะปะตะน ะพะฑัะทะฐัะตะปัะฝะพ ััะตะฑัะตััั ัะบะฐะทะฐัั ัััะตััะฒัััะธะน ะฟัะพัะธะปั ะดะปั ะฝะฐัะปะตะดะพะฒะฐะฝะธั ะธะท ะฝะตะณะพ ะฝะฐัััะพะตะบ ะฟะพ ัะผะพะปัะฐะฝะธั. ะ ะฟัะธะผะตัะต ะฝะธะถะต ัะพะทะดะฐัััั ะฟัะพัะธะปั ยซproductionยป, ะบะพัะพััะน ะดะพะฟะพะปะฝัะตั ะฟัะพัะธะปั ยซreleaseยป ะฒะบะปััะตะฝะธะตะผ ัะปะฐะณะฐ ยซlto = trueยป. ะกะฐะผ ะฟัะพัะธะปั ะฐะบัะธะฒะธััะตััั ะฟัะธ ะฒัะทะพะฒะต cargo ั ะพะฟัะธะตะน ยซโprofile productionยป, ะฐ ัะฑะพัะพัะฝัะต ะฐััะตัะฐะบัั ะฑัะดัั ัะฐะทะผะตัะตะฝั ะฒ ะบะฐัะฐะปะพะณะต ยซtarget/productionยป. [profile.production] inherits = ยซreleaseยป lto = true
- ะกัะฐะฑะธะปะธะทะธัะพะฒะฐะฝะพ ะธัะฟะพะปัะทะพะฒะฐะฝะธะต try_reserve ะดะปั ัะธะฟะพะฒ Vec, String, HashMap, HashSet ะธ VecDeque, ััะพ ะฟะพะทะฒะพะปัะตั ะทะฐัะฐะฝะตะต ัะตะทะตัะฒะธัะพะฒะฐัั ะผะตััะพ ะดะปั ะพะฟัะตะดะตะปัะฝะฝะพะณะพ ัะธัะปะฐ ัะปะตะผะตะฝัะพะฒ ะทะฐะดะฐะฝะฝะพะณะพ ัะธะฟะฐ ะดะปั ัะพะณะพ, ััะพะฑั ัะฝะธะทะธัั ัะฐััะพัั ะฒัะฟะพะปะฝะตะฝะธั ะพะฟะตัะฐัะธะน ะฒัะดะตะปะตะฝะธั ะฟะฐะผััะธ ะธ ะธะทะฑะตะถะฐัั ะฐะฒะฐัะธะนะฝะพะณะพ ะทะฐะฒะตััะตะฝะธั ะฒ ะฟัะพัะตััะต ัะฐะฑะพัั ะธะท-ะทะฐ ะฝะตั ะฒะฐัะบะธ ะฟะฐะผััะธ.
- ะ ะฐะทัะตัะตะฝะพ ัะบะฐะทะฐะฝะธะต ะผะฐะบัะพัะพะฒ ั ัะธะณััะฝัะผะธ ัะบะพะฑะบะฐะผะธ ะฒ ะฒััะฐะถะตะฝะธัั ะฟะพะดะพะฑะฝัั ยซm!{ .. }.method()ยป ะธ ยซm!{ .. }?ยป.
- ะะฟัะธะผะธะทะธัะพะฒะฐะฝะพ ะฒัะฟะพะปะฝะตะฝะธะต ััะฝะบัะธะน File::read_to_end ะธ read_to_string.
- ะะพะดะดะตัะถะบะฐ ัะฟะตัะธัะธะบะฐัะธะธ Unicode ะพะฑะฝะพะฒะปะตะฝะฐ ะดะพ ะฒะตััะธะธ 14.0.
- ะ ะฐััะธัะตะฝะพ ัะธัะปะพ ััะฝะบัะธะน, ะฟะพะผะตัะตะฝะฝัั ยซ#[must_use]ยป ะดะปั ะฒัะฒะพะดะฐ ะฟัะตะดัะฟัะตะถะดะตะฝะธั ะฒ ัะปััะฐะต ะธะณะฝะพัะธัะพะฒะฐะฝะธั ะฒะพะทะฒัะฐัะฐะตะผะพะณะพ ะทะฝะฐัะตะฝะธั, ััะพ ะฟะพะผะพะณะฐะตั ะฒััะฒะธัั ะพัะธะฑะบะธ, ะฒัะทะฒะฐะฝะฝัะต ะฟัะตะดะฟะพะปะพะถะตะฝะธะตะผ, ััะพ ััะฝะบัะธั ะธะทะผะตะฝะธั ะทะฝะฐัะตะฝะธั, ะฐ ะฝะต ะฒะตัะฝัั ะฝะพะฒะพะต ะทะฝะฐัะตะฝะธะต.
- ะะพะฑะฐะฒะปะตะฝ ัะบัะฟะตัะธะผะตะฝัะฐะปัะฝัะน ะฑัะบะตะฝะด ะดะปั ะณะตะฝะตัะฐัะธะธ ะบะพะดะฐ ั ะธัะฟะพะปัะทะพะฒะฐะฝะธะตะผ libgccjit.
- เบเบฒเบเบชเปเบงเบเปเบซเบกเปเบเบญเบ API เปเบเปเบเบทเบเบเปเบฒเบเปเบเบขเบนเปเปเบเบเบฐเปเบเบเบเบญเบเบเบงเบฒเบกเบซเบกเบฑเปเบเบเบปเบ, เบฅเบงเบกเบเบฑเบเบงเบดเบเบตเบเบฒเบเปเบฅเบฐเบเบฒเบเบเบฑเบเบเบฑเปเบเบเบฐเบเบดเบเบฑเบเบฅเบฑเบเบชเบฐเบเบฐเบเปเบฒเบเปเปเบกเปเบเบกเบตเบเบงเบฒเบกเบซเบกเบฑเปเบเบเบปเบ:
- [T; N]::as_mut_slice
- [T; N]::as_slice
- collections::TryReserveError
- HashMap::try_reserve
- HashSet::try_reserve
- String::try_reserve
- String::try_reserve_exact
- Vec::try_reserve
- Vec::try_reserve_exact
- VecDeque::try_reserve
- VecDeque::try_reserve_exact
- Iterator::map_while
- iter::MapWhile
- proc_macro::is_available
- Command::get_program
- Command::get_args
- Command::get_envs
- Command::get_current_dir
- CommandArgs
- CommandEnvs
- ะัะธะทะฝะฐะบ ยซconstยป, ะพะฟัะตะดะตะปัััะธะน ะฒะพะทะผะพะถะฝะพััั ะธัะฟะพะปัะทะพะฒะฐะฝะธั ะฒ ะปัะฑะพะผ ะบะพะฝัะตะบััะต ะฒะผะตััะพ ะบะพะฝััะฐะฝั, ะฟัะธะผะตะฝัะฝ ะฒ ััะฝะบัะธะธ hint::unreachable_unchecked.
- ะ ะตะฐะปะธะทะพะฒะฐะฝ ััะตัะธะน ััะพะฒะตะฝั ะฟะพะดะดะตัะถะบะธ ะดะปั ะฟะปะฐััะพัะผ armv6k-nintendo-3ds, armv7-unknown-linux-uclibceabihf, m68k-unknown-linux-gnu, aarch64-kmc-solid_asp3, armv7a-kmc-solid_asp3-eabi ะธ armv7a-kmc-solid_asp3-eabihf. ะขัะตัะธะน ััะพะฒะตะฝั ะฟะพะดัะฐะทัะผะตะฒะฐะตั ะฑะฐะทะพะฒัั ะฟะพะดะดะตัะถะบั, ะฝะพ ะฑะตะท ะฐะฒัะพะผะฐัะธะทะธัะพะฒะฐะฝะฝะพะณะพ ัะตััะธัะพะฒะฐะฝะธั, ะฟัะฑะปะธะบะฐัะธะธ ะพัะธัะธะฐะปัะฝัั ัะฑะพัะพะบ ะธ ะฟัะพะฒะตัะบะธ ะฒะพะทะผะพะถะฝะพััะธ ัะฑะพัะบะธ ะบะพะดะฐ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: opennet.ru