เบเบฒเบชเบฒเบเบฒเบเบเบฝเบเปเบเบฅเปเบเบฅเบกเบเบตเปเบกเบตเบเบธเบเบเบฐเบชเบปเบเบเบปเปเบงเปเบ Rust 1.59, เบชเปเบฒเบเบเบฑเปเบเบเบถเปเบเปเบเบเปเบเบเบเบฒเบ Mozilla เปเบเปเปเบเบเบฑเบเบเบธเบเบฑเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบฒเบเปเบเปเบเบฒเบเบญเบธเบเบฐเบเปเบฒเบเบญเบเบญเบปเบเบเบฒเบเปเบญเบเบฐเบฅเบฒเบเบเบตเปเบเปเปเบซเบงเบฑเบเบเบปเบเบเปเบฒเปเบฅ Rust Foundation, เปเบเปเบเบทเบเบเปเบญเบเบญเบญเบเบกเบฒ. เบเบฒเบชเบฒเบเบตเปเปเบเบฑเปเบเปเบชเปเบเบงเบฒเบกเบเบญเบเปเบเบเบญเบเบเบงเบฒเบกเบเบปเบเบเปเบฒเปเบฅเบฐเบชเบฐเบซเบเบญเบเบงเบดเบเบตเบเบฒเบเปเบเบทเปเบญเบเบฑเบเบฅเบธเบเบงเบฒเบกเบเบฐเบซเบเบฒเบเบเบญเบเบงเบฝเบเบชเบนเบเปเบเบเบฐเบเบฐเบเบตเปเบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเปเบเบฑเบเบเบตเปเปเบซเบเบทเปเบญเปเบฅเบฐเปเบงเบฅเบฒเปเบฅเปเบ (runtime เบซเบผเบธเบเบฅเบปเบเปเบเบฑเบเบเบทเปเบเบเบฒเบเปเบเบทเปเบญเบเบเบปเปเบเปเบฅเบฐเบเบฒเบเบฎเบฑเบเบชเบฒเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบกเบฒเบเบเบฐเบเบฒเบ).
เบงเบดเบเบตเบเบฒเบเบเบฑเบเบเบฒเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบเบญเบ Rust เบเปเบงเบเบเบฐเบขเบฑเบเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบฒเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเปเบเปเบงเบฅเบฒเบเบตเป manipulating pointers เปเบฅเบฐเบเปเบญเบเบเบฑเบเบเบฑเบเบซเบฒเบเบตเปเปเบเบตเบเบเบทเปเบเปเบเบทเปเบญเบเบเบฒเบเบเบฒเบเบเบฑเบเบเบฒเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบฅเบฐเบเบฑเบเบเปเปเบฒ, เปเบเบฑเปเบ: เบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบทเปเบเบเบตเปเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบซเบผเบฑเบเบเบฒเบเบเบตเปเบกเบฑเบเปเบเปเบเบทเบเบเบปเบเบเปเบญเบ, dereferencing null pointers, buffer overruns, เปเบฅเบฐเบญเบทเปเบเป. เปเบเบทเปเบญเปเบเบเบขเบฒเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบ, เบชเบฐเบซเบเบญเบเบเบฒเบเบเปเปเบชเปเบฒเบเปเบฅเบฐเบเบฒเบเบเบธเปเบกเบเบญเบเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบช, เปเบเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบนเปเบเบฑเบเบเบฒเบเบเบธเบเบชเบดเบเบเปเบฒ. เบเบฑเบเปเบเบฑเบ crates.io เปเบเปเบฎเบฑเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบฑเบเปเบเบปเปเบฒเบเบฒเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบ.
เบเบงเบฒเบกเบเบญเบเปเบเบเบญเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเปเบกเปเบเบชเบฐเบซเบเบญเบเปเบซเปเบขเบนเปเปเบ Rust เปเบเปเบงเบฅเบฒเบฅเบงเบเบฅเบงเบกเปเบเบเบเปเบฒเบเบเบฒเบเบเบงเบเบชเบญเบเบเบฒเบเบญเปเบฒเบเบญเบดเบ, เบเบฒเบเบเบดเบเบเบฒเบกเบเบงเบฒเบกเปเบเบฑเบเปเบเบปเปเบฒเบเบญเบเบงเบฑเบเบเบธ, เบเบฒเบเบเบดเบเบเบฒเบกเบญเบฒเบเบธเบเบญเบเบงเบฑเบเบเบธ (เบเบญเบเปเบเบ), เปเบฅเบฐเบเบฒเบเบเบฐเปเบกเบตเบเบเบงเบฒเบกเบเบทเบเบเปเบญเบเบเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบฅเบฐเบซเบฑเบ. Rust เบเบฑเบเบชเบฐเบซเบเบญเบเบเบฒเบเบเปเบญเบเบเบฑเบเบเบฒเบ overflows integer, เบฎเบฝเบเบฎเปเบญเบเปเบซเปเบกเบตเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเบเบฑเบเบเบฑเบเบเบญเบเบเปเบฒเบเบปเบงเปเบเบเปเบญเบเบเบฒเบเบเปเบฒเปเบเป, เบเบฑเบเบเบฒเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเบเบตเปเบเบตเบเบงเปเบฒเปเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบกเบฒเบเบเบฐเบเบฒเบ, เบเปเบฒเปเบเปเปเบเบงเบเบงเบฒเบกเบเบดเบเบเบญเบเบเบฒเบเบญเปเบฒเบเบญเบดเบ immutable เปเบฅเบฐเบเบปเบงเปเบเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เบชเบฐเบซเบเบญเบเบเบฒเบเบเบดเบกเบเบปเบเบเบตเปเบเบตเปเปเบเบฑเปเบกเปเบเบเปเบเบทเปเบญเบซเบผเบธเบเบเปเบญเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเบขเปเบฒเบเบกเบตเปเบซเบเบเบปเบ.
เบเบฐเบงเบฑเบเบเบฐเบเปเบฒเบเบปเปเบเบเป:
- เบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเบเปเบฒเปเบเปเปเบญเบเบฐเบชเบฒเบเบเบฐเบเบญเบเบเบฒเบชเบฒเบเบฐเบเบญเบ, เบเบตเปเบกเบตเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเปเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบตเปเบเปเบญเบเบเบฒเบเบเบงเบเบเบธเบกเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบฅเบฐเบเบฑเบเบเปเปเบฒเบซเบผเบทเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบเปเบฒเปเบเบฐเบเปเบฒเปเบเบทเปเบญเบเบเบฑเบเบเบดเปเบชเบ. เปเบเบเบเบฒเบเบเบฐเบเบญเบเปเบเปเบเบทเบเปเบเบตเปเบกเปเบเบเปเบเป macro "asm!" เปเบฅเบฐ "global_asm!" เบเบฒเบเปเบเป syntax เบเบฒเบเบเบฑเบเบฎเบนเบเปเบเบเบชเบฐเบเบฃเบดเบเบชเบณเบฅเบฑเบเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเบเบทเปเบเปเบฒเบเบเบฑเบเบเบตเปเปเบเปเบชเบณเบฅเบฑเบเบเบฒเบเบเปเบฝเบเบชเบฐเบเบฃเบดเบเปเบ Rust. compiler เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเปเบฒเปเบเบฐเบเปเบฒเบเบฒเบเบเบฐเบเบญเบเบชเปเบฒเบฅเบฑเบ x86, x86-64, ARM, AArch64 เปเบฅเบฐ RISC-V เบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒ. เบเบปเบงเบขเปเบฒเบเบเบฒเบเปเบเบ: เปเบเป std::arch::asm; // เบเบนเบ x เบเปเบงเบ 6 เปเบเบเปเบเป shifts เปเบฅเบฐ adds เปเบซเป mut x: u64 = 4; unsafe { asm!( "mov {tmp}, {x}", "shl {tmp}, 1", "shl {x}, 2", "add {x}, {tmp}", x = inout(reg ) x, tmp = เบญเบญเบ(reg) _, ); } assert_eq!(x, 4*6);
- เปเบเบตเปเบกเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเบกเบญเบเบซเบกเบฒเบเบเบตเปเบเบทเบเบเปเบฒเบฅเบฒเบ (เบเบฐเบซเบเบฒเบ), เปเบเบฅเบฑเบเบชเบฐเบเบฐ, เบเปเบญเบเบซเบผเบทเปเบเบเบชเปเบฒเบเบเปเบฒเบเบงเบเบซเบเบถเปเบเปเบกเปเบเบฅเบฐเบเบธเปเบงเปเบขเบนเปเปเบเบทเปเบญเบเบเปเบฒเบเบเบญเบเบเบฒเบเบชเบฐเปเบเบเบเบปเบ. เบเบปเบงเบขเปเบฒเบ: let (a, b, c, d, e); (a, b) = (1, 2); [c, .., d, _] = [1, 2, 3, 4, 5] ; เปเบเบเบชเปเบฒเบ { e, .. } = เปเบเบเบชเปเบฒเบ { e: 5, f: 3 }; assert_eq!([1, 2, 1, 4, 5], [a, b, c, d, e]);
- เบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเบเปเบฒเบเบปเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบชเปเบฒเบฅเบฑเบ const generics: struct ArrayStorage { arr: [T; N], } impl ArrayStorage { fn new(a: T, b: T) -> ArrayStorage { ArrayStorage { arr: [a, b], } } }
- เบเบนเปเบเบฑเบเบเบฒเบเปเบเบเปเบเบเบชเบดเบเบเปเบฒเปเบซเปเบเปเบฒเปเบเบทเบญเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเปเบฒเปเบเปเปเบเบเบชเปเบฒเบเบเบตเปเบเปเปเบเบทเบเบเปเบญเบเปเบเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเบเบตเปเบเบทเบเบเบธเบเปเบเปเบเปเบเบทเปเบญเบเบเบฒเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเปเบเบเบปเบงเบฅเบงเบเบฅเบงเบกเบเปเปเบกเบนเบ (เบเบปเบงเบขเปเบฒเบ, เปเบเบทเปเบญเบเบเบฒเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ, เบเบทเปเบเบเบตเปเบเบญเบเปเบเบเบชเปเบฒเบเบเบตเปเบเบทเบเบเบฑเบเบเบธเปเบเปเบเบทเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบนเปเบขเบทเบกเปเบเบเบฅเบฑเบญเบเบเบตเปเบเบญเบเปเบ). เปเบเบเบชเปเบฒเบเบเบฑเปเบเบเปเบฒเบงเบเบฐเบเปเปเบเบทเบเบฎเบญเบเบฎเบฑเบเปเบ Rust เบฅเบธเปเบเปเบเบญเบฐเบเบฒเบเบปเบ.
- Cargo เปเบฅเบฐ rustc เบกเบตเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเบชเปเบฒเบเปเบเบฅเปเบเบตเปเบชเบฒเบกเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเป stripped เบเบญเบเบเปเปเบกเบนเบ debugging (strip = "debuginfo") เปเบฅเบฐเบชเบฑเบเบเบฒเบฅเบฑเบ (strip = "symbols"), เปเบเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบซเบฒเบเบปเบเบเบฐเปเบซเบเบเปเบเบเบเปเบฒเบเบซเบฒเบ. เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบเบเปเบฒเบเบงเบฒเบกเบชเบฐเบญเบฒเบเปเบกเปเบเบเบฐเบเบดเบเบฑเบเบเปเบฒเบเบเบฒเบฅเบฒเบกเบดเปเบเบต "เปเบเบ" เปเบ Cargo.toml: [profile.release] strip = "debuginfo", "เบชเบฑเบเบเบฒเบฅเบฑเบ"
- เบเบฒเบเบฅเบงเบเบฅเบงเบกเบเปเปเบกเบนเบเปเบเบตเปเบกเบเบถเปเบเบเบทเบเบเบดเบเปเบเปเบเบฒเบเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ. เปเบซเบเบเบปเบเปเบเปเบเบทเบเบเปเบฒเบงเปเบเบดเบเบงเปเบฒเปเบเบฑเบเบเบฒเบเปเบเปเปเบเบเบปเปเบงเบเบฒเบงเบชเปเบฒเบฅเบฑเบ bug เปเบ compiler เบเบตเปเบเปเบฒเปเบเบชเบนเปเบเบฒเบเบเบฑเบเบเปเบญเบเปเบฅเบฐเบเบงเบฒเบกเบเบดเบเบเบฒเบ deserialization. เบเบฒเบโเปเบเปโเปเบ bug เปเบเปโเบเบทเบโเบเบฐโเบเบฝเบกโเปเบฅเปเบงโเปเบฅเบฐโเบเบฐโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบฅเบงเบกโเปเบเบปเปเบฒโเปเบโเบเบฒเบโเบเปเบญเบโเบเปเปโเปเบโ. เปเบเบทเปเบญเบชเบปเปเบเบเบทเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเบตเปเปเบเบตเปเบกเบเบถเปเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก RUSTC_FORCE_INCREMENTAL=1.
- เบเบฒเบเบชเปเบงเบเปเบซเบกเปเบเบญเบ API เปเบเปเบเบทเบเบเปเบฒเบเปเบเบขเบนเปเปเบเบเบฐเปเบเบเบเบญเบเบเบงเบฒเบกเบซเบกเบฑเปเบเบเบปเบ, เบฅเบงเบกเบเบฑเบเบงเบดเบเบตเบเบฒเบเปเบฅเบฐเบเบฒเบเบเบฑเบเบเบฑเปเบเบเบฐเบเบดเบเบฑเบเบฅเบฑเบเบชเบฐเบเบฐเบเปเบฒเบเปเปเบกเปเบเบกเบตเบเบงเบฒเบกเบซเบกเบฑเปเบเบเบปเบ:
- std::thread::available_parallelism
- เบเบปเบเปเบเปเบฎเบฑเบ:: เบชเปเบฒเปเบเบปเบฒ
- เบเบปเบเปเบเปเบฎเบฑเบ::cloned
- arch::asm!
- arch::global_asm!
- ops::ControlFlow::is_break
- ops::ControlFlow::is_continue
- TryFrom เบชเปเบฒเบฅเบฑเบ u8
- char::TryFromCharError (Clone, Debug, Display, PartialEq, Copy, Eq, Error)
- iter::zip
- NonZeroU8::is_power_of_two
- NonZeroU16::is_power_of_two
- NonZeroU32::is_power_of_two
- NonZeroU64::is_power_of_two
- NonZeroU128::is_power_of_two
- DoubleEndedIterator เบชเปเบฒเบฅเบฑเบเปเบเบเบชเปเบฒเบเปเบเบเปเบญเบ
- DoubleEndedIterator เบชเปเบฒเบฅเบฑเบเปเบเบเบชเปเบฒเบ ToUppercase
- TryFrom เบชเปเบฒเบฅเบฑเบ [T; N]
- UnwindSafe เบชเปเบฒเบฅเบฑเบเปเบเบเบชเปเบฒเบเบเบฑเปเบเบเบฝเบง
- RefUnwindSafe เบชเปเบฒเบฅเบฑเบเบเบฑเปเบเบเบฝเบง
- armv8 เบเบฑเบเบเบฑเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ neon เบชเปเบฒเบเบเบถเปเบเปเบ compiler เบชเปเบฒเบฅเบฑเบ aarch64
- เบเบธเบเบฅเบฑเบเบชเบฐเบเบฐ "const", เปเบเบดเปเบเบเปเบฒเบเบปเบเบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเปเบเบญเบเบเบฒเบเบเปเบฒเปเบเปเบกเบฑเบเปเบเบชเบฐเบเบฒเบเบเบฒเบเปเบเบเปเปเบเบฒเบกเปเบเบเบเบตเปเบเบฐเปเบเบฑเบเบเปเบฒเบเบปเบเบเบตเป, เบเบทเบเบเปเบฒเปเบเปเปเบเบซเบเปเบฒเบเบตเป:
- me::MaybeUninit::as_ptr
- me::MaybeUninit::assume_init
- me::MaybeUninit::assume_init_ref
- ffi::CStr::from_bytes_with_nul_unchecked
เปเบซเบผเปเบเบเปเปเบกเบนเบ: opennet.ru