เชฐเชธเซเชŸ 1.66 เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชฒเซ‡เช‚เช—เซเชตเซ‡เชœ เชฐเชฟเชฒเซ€เช

เชฐเชธเซเชŸ 1.66 เชธเชพเชฎเชพเชจเซเชฏ เชนเซ‡เชคเซเชตเชพเชณเซ€ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพเชจเซเช‚ เชชเซเชฐเช•เชพเชถเชจ, เชฎเซ‹เชเชฟเชฒเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฆเซเชตเชพเชฐเชพ เชธเซเชฅเชพเชชเชฟเชค, เชชเชฐเช‚เชคเซ เชนเชตเซ‡ เชธเซเชตเชคเช‚เชคเซเชฐ เชฌเชฟเชจ-เชฒเชพเชญเช•เชพเชฐเซ€ เชธเช‚เชธเซเชฅเชพ เชฐเชธเซเชŸ เชซเชพเช‰เชจเซเชกเซ‡เชถเชจเชจเชพ เช†เชถเซเชฐเชฏ เชนเซ‡เช เชณ เชตเชฟเช•เชธเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡. เชญเชพเชทเชพ เชฎเซ‡เชฎเชฐเซ€ เชธเชฒเชพเชฎเชคเซ€ เชชเชฐ เชงเซเชฏเชพเชจ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชค เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เช—เชพเชฐเซเชฌเซ‡เชœ เช•เชฒเซ‡เช•เซเชŸเชฐ เช…เชจเซ‡ เชฐเชจเชŸเชพเชˆเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชŸเชพเชณเซ€เชจเซ‡ เช‰เชšเซเชš เชœเซ‹เชฌ เชธเชฎเชพเช‚เชคเชฐเชคเชพ เชนเชพเช‚เชธเชฒ เช•เชฐเชตเชพเชจเชพ เชฎเชพเชงเซเชฏเชฎ เชชเซ‚เชฐเชพ เชชเชพเชกเซ‡ เช›เซ‡ (เชฐเชจเชŸเชพเช‡เชฎ เชฎเซ‚เชณเชญเซ‚เชค เชชเซเชฐเชพเชฐเช‚เชญ เช…เชจเซ‡ เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค เชชเซเชธเซเชคเช•เชพเชฒเชฏเชจเซ€ เชœเชพเชณเชตเชฃเซ€ เชฎเชพเชŸเซ‡ เช˜เชŸเชพเชกเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡).

เชฐเชธเซเชŸเชจเซ€ เชฎเซ‡เชฎเชฐเซ€ เชนเซ‡เชจเซเชกเชฒเชฟเช‚เช— เชชเชฆเซเชงเชคเชฟเช“ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเชจเซ‡ เชชเซ‹เช‡เชจเซเชŸเชฐเชจเซ€ เชนเซ‡เชฐเชซเซ‡เชฐ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชญเซ‚เชฒเซ‹เชฅเซ€ เชฌเชšเชพเชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชฒเซ‹-เชฒเซ‡เชตเชฒ เชฎเซ‡เชฎเชฐเซ€ เชนเซ‡เชจเซเชกเชฒเชฟเช‚เช—เชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชŠเชญเซ€ เชฅเชคเซ€ เชธเชฎเชธเซเชฏเชพเช“ เชธเชพเชฎเซ‡ เชฐเช•เซเชทเชฃ เช†เชชเซ‡ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ เชฎเซ‡เชฎเชฐเซ€ เชเชฐเชฟเชฏเชพเชจเซ‡ เชฎเซเช•เซเชค เช•เชฐเซเชฏเชพ เชชเช›เซ€ เชคเซ‡เชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเซเช‚, เชจเชฒ เชชเซ‹เช‡เชจเซเชŸเชฐเชจเซ‹ เชธเช‚เชฆเชฐเซเชญ เช†เชชเชตเซ‹, เชฌเชซเชฐ เช“เชตเชฐเชฐเชจเซเชธ เชตเช—เซ‡เชฐเซ‡. เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เช“เชจเซเช‚ เชตเชฟเชคเชฐเชฃ เช•เชฐเชตเชพ, เชฌเชฟเชฒเซเชก เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพ เช…เชจเซ‡ เชจเชฟเชฐเซเชญเชฐเชคเชพเช“เชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เช•เชพเชฐเซเช—เซ‹ เชชเซ‡เช•เซ‡เชœ เชฎเซ‡เชจเซ‡เชœเชฐ เชตเชฟเช•เชธเชพเชตเซ‡ เช›เซ‡. crates.io เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€ เชนเซ‹เชธเซเชŸเชฟเช‚เช— เชฒเชพเชˆเชฌเซเชฐเซ‡เชฐเซ€เช“ เชฎเชพเชŸเซ‡ เช†เชงเชพเชฐเชญเซ‚เชค เช›เซ‡.

เช•เชฎเซเชชเชพเชˆเชฒ เชธเชฎเชฏเซ‡ เชฐเชธเซเชŸเชฎเชพเช‚ เชฐเซ‡เชซเชฐเชจเซเชธ เชšเซ‡เช•เชฟเช‚เช—, เช‘เชฌเซเชœเซ‡เช•เซเชŸเชจเซ€ เชฎเชพเชฒเชฟเช•เซ€เชจเซ‹ เชŸเซเชฐเซ…เช• เชฐเชพเช–เชตเชพ, เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชฒเชพเช‡เชซเชŸเชพเช‡เชฎ (เชธเซเช•เซ‹เชชเซเชธ)เชจเซ‹ เชŸเซเชฐเซ…เช• เชฐเชพเช–เชตเชพ เช…เชจเซ‡ เช•เซ‹เชก เชเช•เซเชเชฟเช•เซเชฏเซเชถเชจ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชฎเซ‡เชฎเชฐเซ€ เชเช•เซเชธเซ‡เชธเชจเซ€ เชธเชพเชšเซ€เชคเชพเชจเซเช‚ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเซ€เชจเซ‡ เชฎเซ‡เชฎเชฐเซ€ เชธเซเชฐเช•เซเชทเชพ เชชเซ‚เชฐเซ€ เชชเชพเชกเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชฐเชธเซเชŸ เชชเชฃ เชชเซ‚เชฐเซเชฃเชพเช‚เช• เช“เชตเชฐเชซเซเชฒเซ‹ เชธเชพเชฎเซ‡ เชฐเช•เซเชทเชฃ เชชเซ‚เชฐเซเช‚ เชชเชพเชกเซ‡ เช›เซ‡, เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ เชšเชฒ เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ€ เชซเชฐเชœเชฟเชฏเชพเชค เชถเชฐเซ‚เช†เชคเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชฎเชพเช‚ เชญเซ‚เชฒเซ‹เชจเซ‡ เชตเชงเซ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เชนเซ‡เชจเซเชกเชฒ เช•เชฐเซ‡ เช›เซ‡, เชกเชฟเชซเซ‹เชฒเซเชŸ เชฐเซ‚เชชเซ‡ เช…เชชเชฐเชฟเชตเชฐเซเชคเชจเชถเซ€เชฒ เชธเช‚เชฆเชฐเซเชญเซ‹ เช…เชจเซ‡ เชšเชฒเซ‹เชจเซ‹ เช–เซเชฏเชพเชฒ เชฒเชพเช—เซ เช•เชฐเซ‡ เช›เซ‡, เชฒเซ‹เชœเชฟเช•เชฒ เชญเซ‚เชฒเซ‹เชจเซ‡ เช˜เชŸเชพเชกเชตเชพ เชฎเชพเชŸเซ‡ เชฎเชœเชฌเซ‚เชค เชธเซเชŸเซ‡เชŸเชฟเช• เชŸเชพเช‡เชชเชฟเช‚เช— เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡.

เชฎเซเช–เซเชฏ เชจเชตเซ€เชจเชคเชพเช“:

  • เชชเซ‚เชฐเซเชฃเชพเช‚เช• เชฐเชœเซ‚เช†เชคเซ‹ ("#[repr(Int)]" เชเชŸเซเชฐเชฟเชฌเซเชฏเซเชŸ เชธเชพเชฅเซ‡เชจเซ€ เช—เชฃเชคเชฐเซ€เช“เชฎเชพเช‚, เชญเซ‡เชฆเชญเชพเชตเชจเชพ เชธเซเชชเชทเซเชŸ เชธเช‚เช•เซ‡เชค (เช—เชฃเชจเชพเชฎเชพเช‚ เชตเซ‡เชฐเชฟเช…เชจเซเชŸ เชจเช‚เชฌเชฐ)เชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช›เซ‡, เชชเช›เซ€ เชญเชฒเซ‡ เช—เชฃเชคเชฐเซ€เชฎเชพเช‚ เชซเซ€เชฒเซเชก เชนเซ‹เชฏ. #[repr(u8)] enum Foo { A(u8), # discriminant 0 B(i8), # discriminant 1 C(bool) = 42, # discriminant 42 }
  • เชซเช‚เช•เซเชถเชจ เช•เซ‹เชฐ::เชนเชฟเชจเซเชŸ::เชฌเซเชฒเซ‡เช•_เชฌเซ‹เช•เซเชธ เช‰เชฎเซ‡เชฐเซเชฏเซเช‚ เชœเซ‡ เชซเช•เซเชค เชชเซเชฐเชพเชชเซเชค เชฎเซ‚เชฒเซเชฏ เชชเชฐเชค เช•เชฐเซ‡ เช›เซ‡. เช•เชฎเซเชชเชพเชˆเชฒเชฐ เชตเชฟเชšเชพเชฐเซ‡ เช›เซ‡ เช•เซ‡ เช† เชซเช‚เช•เซเชถเชจ เช•เช‚เชˆเช• เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡, เชฌเซเชฒเซ‡เช•_เชฌเซ‰เช•เซเชธ เชซเช‚เช•เซเชถเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เซ‹เชก เชชเชฐเซเชซเซ‹เชฐเซเชฎเชจเซเชธ เชŸเซ‡เชธเซเชŸเชฟเช‚เช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เช…เชฅเชตเชพ เชœเชจเชฐเซ‡เชŸเซ‡เชก เชฎเชถเซ€เชจ เช•เซ‹เชกเชจเซ€ เชคเชชเชพเชธ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชฒเซ‚เชชเซเชธ เชฎเชพเชŸเซ‡ เช•เชฎเซเชชเชพเช‡เชฒเชฐ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เชเซ‡เชถเชจเชจเซ‡ เช…เช•เซเชทเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡ (เชœเซ‡เชฅเซ€ เช•เชฎเซเชชเชพเช‡เชฒเชฐ เช•เซ‹เชกเชจเซ‡ เชฌเชฟเชจเช‰เชชเชฏเซ‹เช—เซ€ เช—เชฃเซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชฆเซ‚เชฐ เชจ เช•เชฐเซ‡). เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชจเซ€เชšเซ‡เชจเชพ เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚, black_box(v.as_ptr()) เช•เชฎเซเชชเชพเชˆเชฒเชฐเชจเซ‡ เชเชตเซเช‚ เชตเชฟเชšเชพเชฐเชคเชพ เช…เชŸเช•เชพเชตเซ‡ เช›เซ‡ เช•เซ‡ เชตเซ‡เช•เซเชŸเชฐ v เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฅเชคเซ‹ เชจเชฅเซ€. std::hint::black_box เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹; fn push_cap(v: &mut Vec) { i for 0..4 { v.push(i); black_box(v.as_ptr()); } }
  • "เช•เชพเชฐเซเช—เซ‹" เชชเซ‡เช•เซ‡เชœ เชฎเซ‡เชจเซ‡เชœเชฐ "เชฆเซ‚เชฐ เช•เชฐเซ‹" เช†เชฆเซ‡เชถ เช†เชชเซ‡ เช›เซ‡, เชœเซ‡ เชคเชฎเชจเซ‡ เช†เชฆเซ‡เชถ เชตเชพเช•เซเชฏเชฎเชพเช‚เชฅเซ€ Cargo.toml เชฎเซ‡เชจเชฟเชซเซ‡เชธเซเชŸเชฎเชพเช‚เชฅเซ€ เชจเชฟเชฐเซเชญเชฐเชคเชพเชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡.
  • API เชจเชพ เชจเชตเชพ เชญเชพเช—เชจเซ‡ เชธเซเชฅเชฟเชฐเชจเซ€ เชถเซเชฐเซ‡เชฃเซ€เชฎเชพเช‚ เช–เชธเซ‡เชกเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡, เชœเซ‡เชฎเชพเช‚ เชฒเช•เซเชทเชฃเซ‹เชจเซ€ เชชเชฆเซเชงเชคเชฟเช“ เช…เชจเซ‡ เช…เชฎเชฒเซ€เช•เชฐเชฃเซ‹ เชธเซเชฅเชฟเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡:
    • proc_macro::Span::source_text
    • u*::{checked_add_signed, overflowing_add_signed, saturating_add_signed, wrapping_add_signed}
    • i*::{checked_add_unsigned, overflowing_add_unsigned, saturating_add_unsigned, wrapping_add_unsigned}
    • i*::{checked_sub_unsigned, overflowing_sub_unsigned, saturating_sub_unsigned, wrapping_sub_unsigned}
    • BTreeSet::{first, last, pop_first, pop_last}
    • BTreeMap::{first_key_value, last_key_value, first_entry, last_entry, pop_first, pop_last}
    • WASI เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ stdio เชฒเซ‹เช• เชชเซเชฐเช•เชพเชฐเซ‹ เชฎเชพเชŸเซ‡ AsFd เช…เชฎเชฒเซ€เช•เชฐเชฃ เช‰เชฎเซ‡เชฐเซ‹.
    • impl TryFrom > เชฌเซ‹เช•เซเชธ เชฎเชพเชŸเซ‡<[T; เชเชจ]>
    • core::hint::black_box
    • เช…เชตเชงเชฟ::try_from_secs_{f32,f64}
    • เชตเชฟเช•เชฒเซเชช::เช…เชจเชเชฟเชช
    • std::os::fd
  • เชŸเซ‡เชฎเซเชชเชฒเซ‡เชŸเซเชธเชฎเชพเช‚ "..X" เช…เชจเซ‡ "..=X" เชถเซเชฐเซ‡เชฃเซ€เช“เชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช›เซ‡.
  • เชœเซเชฏเชพเชฐเซ‡ rustc เช•เชฎเซเชชเชพเชˆเชฒเชฐเชจเซ‹ เช†เช—เชณเชจเซ‹ เช›เซ‡เชกเซ‹ เช…เชจเซ‡ LLVM เชฌเซ‡เช•เชเชจเซเชก เชฌเชจเชพเชตเชคเซ€ เชตเช–เชคเซ‡, LTO (เชฒเชฟเช‚เช• เชŸเชพเชˆเชฎ เช“เชชเซเชŸเชฟเชฎเชพเชˆเชเซ‡เชถเชจ) เช…เชจเซ‡ BOLT (เชฌเชพเชˆเชจเชฐเซ€ เช“เชชเซเชŸเชฟเชฎเชพเชˆเชเซ‡เชถเชจ เช…เชจเซ‡ เชฒเซ‡เช†เช‰เชŸ เชŸเซ‚เชฒ) เช“เชชเซเชŸเชฟเชฎเชพเชˆเชเซ‡เชถเชจ เชฎเซ‹เชกเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชชเชฐเชฟเชฃเชพเชฎเซ€ เช•เซ‹เชกเชจเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€ เชตเชงเชพเชฐเชตเชพ เช…เชจเซ‡ เชฎเซ‡เชฎเชฐเซ€ เชตเชชเชฐเชพเชถ เช˜เชŸเชพเชกเชตเชพ เชฎเชพเชŸเซ‡ เชฅเชพเชฏ เช›เซ‡.
  • armv5te-none-eabi เช…เชจเซ‡ thumbv5te-none-eabi เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชฎเชพเชŸเซ‡ เชฒเซ‡เชตเชฒ XNUMX เชธเชชเซ‹เชฐเซเชŸเชจเซ‹ เช…เชฎเชฒ เช•เชฐเซเชฏเซ‹. เชคเซเชฐเซ€เชœเซเช‚ เชธเซเชคเชฐ เชฎเซ‚เชณเชญเซ‚เชค เช†เชงเชพเชฐ เชธเซ‚เชšเชตเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชธเซเชตเชšเชพเชฒเชฟเชค เชชเชฐเซ€เช•เซเชทเชฃ เชตเชฟเชจเชพ, เชธเชคเซเชคเชพเชตเชพเชฐ เชฌเชฟเชฒเซเชก เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเชตเซเช‚ เช…เชจเซ‡ เช•เซ‹เชก เชฌเชจเชพเชตเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เชคเชชเชพเชธเชตเซ€.
  • MacOS เชœเซ‡เชจเชฐเชฟเช• เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เช“ เชธเชพเชฅเซ‡ เชฒเชฟเช‚เช• เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช‰เชฎเซ‡เชฐเชพเชฏเซ‡เชฒ เชธเชชเซ‹เชฐเซเชŸ.

เชตเชงเซเชฎเชพเช‚, เช…เชฎเซ‡ เชฐเชธเซเชŸ เชฒเซ‡เช‚เช—เซเชตเซ‡เชœ (gccrs) เชจเชพ เชซเซเชฐเชจเซเชŸ-เชเชจเซเชก เช•เชฎเซเชชเชพเช‡เชฒเชฐเชจเชพ GCC เช•เซ‹เชกเชฌเซ‡เชเชฎเชพเช‚ เชธเชฎเชพเชตเซ‡เชถเชจเซ‡ เชจเซ‹เช‚เชงเซ€ เชถเช•เซ€เช เช›เซ€เช. GCC 13 เชถเชพเช–เชพเชฎเชพเช‚ เชซเซเชฐเชจเซเชŸเชเชจเซเชกเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡, เชœเซ‡ เชฎเซ‡ 2023เชฎเชพเช‚ เชฐเชฟเชฒเซ€เช เชฅเชถเซ‡. GCC 13 เชฅเซ€ เชถเชฐเซ‚ เช•เชฐเซ€เชจเซ‡, เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค GCC เชŸเซ‚เชฒเช•เซ€เชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— LLVM เชตเชฟเช•เชพเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฌเชจเซ‡เชฒ rustc เช•เชฎเซเชชเชพเช‡เชฒเชฐเชจเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชตเช—เชฐ เชฐเชธเซเชŸ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซเชธ เช•เชฎเซเชชเชพเช‡เชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เชธเช•เซเชทเชฎ เชนเชถเซ‡. GCC 13 เชฎเชพเช‚ เชฐเชธเซเชŸ เช…เชฎเชฒเซ€เช•เชฐเชฃ เชฌเซ€เชŸเชพ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚ เชนเชถเซ‡, เชกเชฟเชซเซ‹เชฒเซเชŸ เชฐเซ‚เชชเซ‡ เชธเช•เซเชทเชฎ เชจเชฅเซ€.

เชธเซ‹เชฐเซเชธ: opennet.ru

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹