ืจื•ืกื˜ 1.66 ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš ืžืขืœื“ื•ื ื’

ื“ื™ ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ืขืจ ื’ืขื ืขืจืึทืœ-ืฆื•ื•ืขืง ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš Rust 1.66, ื’ืขื’ืจื™ื ื“ืขื˜ ื“ื•ืจืš ื“ื™ ืžืึธื–ื™ืœืœืึท ืคึผืจื•ื™ืขืงื˜, ืึธื‘ืขืจ ืื™ืฆื˜ ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืื•ื ื˜ืขืจ ื“ื™ ืึธื•ืกืคึผื™ืกื™ื– ืคื•ืŸ ื“ื™ ืคืจื™ื™ึท ื ืึทืŸ-ื ื•ืฅ ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืข Rust Foundation, ืื™ื– ืืจื•ื™ืก. ื“ื™ ืฉืคึผืจืึทืš ืื™ื– ืคืึธื•ืงื™ืกื˜ ืื•ื™ืฃ ื–ื™ืงืึธืจืŸ ื–ื™ื›ืขืจืงื™ื™ึทื˜ ืื•ืŸ ื’ื™ื˜ ื“ื™ ืžื™ื˜ืœ ืฆื• ื“ืขืจื’ืจื™ื™ื›ืŸ ื”ื•ื™ืš ืคึผืึทืจืึทืœืขืœื™ื–ืึทื ืื™ืŸ ืึทืจื‘ืขื˜ ื“ื•ืจื›ืคื™ืจื•ื ื’, ืื•ืŸ ื•ื™ืกืžื™ื™ื“ืŸ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืึท ืžื™ืกื˜ ืงืึทืœืขืงื˜ืขืจ ืื•ืŸ ืจื•ื ื˜ื™ืžืข (ืจื•ื ื˜ื™ืžืข ืื™ื– ืจื™ื“ื•ืกื˜ ืฆื• ื™ืงืขืจื“ื™ืง ื™ื ื™ื˜ื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ ืื•ืŸ ื•ื™ืฉืึทืœื˜ ืคื•ืŸ ื“ื™ ื ืึธืจืžืึทืœ ื‘ื™ื‘ืœื™ืึธื˜ืขืง).

ืจืึทืกื˜ ืก ื–ื›ึผืจื•ืŸ ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’ ื˜ืขืงื ื™ืงืก ื‘ืึทืคืจื™ื™ึทืขืŸ ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืคื•ืŸ ื˜ื™ื™ึทื˜ืœ ืžืึทื ื™ืคึผื™ืึทืœื™ื™ืฉืึทืŸ ืขืจืจืึธืจืก ืื•ืŸ ื‘ืึทืฉื™ืฆืŸ ืงืขื’ืŸ ืคึผืจืึธื‘ืœืขืžืก ื•ื•ืึธืก ืฉื˜ื™ื™ืขืŸ ืคึฟื•ืŸ ื ื™ื“ืขืจื™ืง-ืžื“ืจื’ื” ื–ื›ึผืจื•ืŸ ืžืึทื ื™ืคึผื™ืึทืœื™ื™ืฉืึทืŸ, ืึทื–ืึท ื•ื•ื™ ื ืึธืš-ืคืจื™ื™ ืึทืงืกืขืก, ื ืึทืœ ื˜ื™ื™ึทื˜ืœ ื“ื™ืคืขืจืึทื ืกื™ื–, ื‘ืึทืคืขืจ ืึธื•ื•ื•ืขืจืจืึทื ื–, ืื•ืŸ ื“ื™ ื•ื•ื™. ืฆื• ืคืึทืจืฉืคึผืจื™ื™ื˜ืŸ ืœื™ื™ื‘ืจืขืจื™ื–, ืขื ืฉื•ืจ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืื•ืŸ ืคื™ืจืŸ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื–, ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืื™ื– ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’ ื“ื™ ืงืึทืจื’ืึธ ืคึผืขืงืœ ืคืึทืจื•ื•ืึทืœื˜ืขืจ. ื“ื™ crates.io ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืื™ื– ื’ืขืฉื˜ื™ืฆื˜ ืคึฟืึทืจ ื”ืึธืกื˜ื™ื ื’ ืœื™ื™ื‘ืจืขืจื™ื–.

ื–ื™ืงืึธืจืŸ ื–ื™ื›ืขืจืงื™ื™ึทื˜ ืื™ื– ืขื ืคืึธืจืกื˜ ืื™ืŸ ืจื•ืกื˜ ืื™ืŸ ื“ื™ ืงืึทืžืคึผื™ื™ืœื™ื ื’ ืฆื™ื™ื˜ ื“ื•ืจืš ืจืขืคึฟืขืจืขื ืฅ ืงืึธื ื˜ืจืึธืœื™ืจื•ื ื’, ืึธื‘ื“ื–ืฉืขืงื˜ ืึธื•ื ืขืจืฉื™ืคึผ ื˜ืจืึทืงื™ื ื’, ืึทื‘ื“ื–ืฉืขืงื˜ ืœืขื‘ืŸ (ืกืงืึธืคึผื™ื ื’) ื‘ืึทื˜ืจืึทื›ื˜ื•ื ื’, ืื•ืŸ ื–ื›ึผืจื•ืŸ ืึทืงืกืขืก ืืคืฉืืฆื•ื ื’ ื‘ื™ื™ ืจื•ื ื˜ื™ืžืข. ื–ืฉืึทื•ื•ืขืจ ืื•ื™ืš ืคึผืจืึธื•ื•ื™ื“ืขืก ืฉื•ืฅ ืงืขื’ืŸ ื™ื ื˜ืึทื“ื–ืฉืขืจ ืึธื•ื•ื•ืขืจืคืœืึธื•ื–, ืจื™ืงื•ื•ื™ื™ืขืจื– ืึทื– ื“ื™ ื•ื•ืขืจื™ืึทื‘ืึทืœ ื•ื•ืึทืœื•ืขืก ื–ืขื ืขืŸ ื™ื ื™ื˜ื™ืึทืœื™ื™ื–ื“ ืื™ื™ื“ืขืจ ื ื•ืฆืŸ, ื”ืื˜ ื‘ืขืกืขืจ ื˜ืขื•ืช ื”ืึทื ื“ืœื™ื ื’ ืื™ืŸ ื“ืขืจ ื ืึธืจืžืึทืœ ื‘ื™ื‘ืœื™ืึธื˜ืขืง, ื ื™ืฆื˜ ื“ืขื ื‘ืึทื’ืจื™ืฃ ืคื•ืŸ ื™ืžืคึผื™ื•ืึทื˜ืึทื‘ืึทืœ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืื•ืŸ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜, ืื•ืŸ ืึธืคืคืขืจืก ืฉื˜ืึทืจืง ืกื˜ืึทื˜ื™ืง ื˜ื™ื™ืคึผื™ื ื’ ืฆื• ืžื™ื ืึทืžื™ื™ื– ืœืึทื“ื–ืฉื™ืงืึทืœ ืขืจืจืึธืจืก.

ื”ื•ื™ืคึผื˜ ื—ื™ื“ื•ืฉื™ื:

  • ืื™ืŸ ื™ื ื•ืžืขืจื™ื™ืฉืึทื ื– ืžื™ื˜ ื’ืึทื ืฅ ืจืขืคึผืจืึทื–ืึทื ื˜ื™ื™ืฉืึทื ื– (ื“ื™ "#[repr(ื™ื ื˜)]" ืึทื˜ืจื™ื‘ื™ื•ื˜), ื™ืงืกืคึผืœื™ืกืึทื˜ ืึธื ื•ื•ื™ื™ึทื– ืคื•ืŸ ื“ื™ ื“ื™ืกืงืจื™ืžื™ื ืึทื ื˜ (ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ื“ื™ ืึธืคึผืฆื™ืข ืื™ืŸ ื“ื™ ื™ื ื•ืžืขืจื™ื™ืฉืึทืŸ) ืื™ื– ืขืจืœื•ื™ื‘ื˜, ืืคื™ืœื• ืื•ื™ื‘ ื“ื™ ื™ื ื•ืžืขืจื™ื™ืฉืึทืŸ ื›ึผื•ืœืœ ืคืขืœื“ืขืจ. #[repr(u8)] enum Foo {A(u8), # ื“ื™ืกืงืจื™ืžื™ื ืึทื ื˜ 0 ื‘(ื™8), # ื“ื™ืกืงืจื™ืžื™ื ืึทื ื˜ 1 C(ื‘ื•ืœ) = 42, # ื“ื™ืกืงืจื™ืžื™ื ืึทื ื˜ 42}
  • ืฆื•ื’ืขื’ืขื‘ืŸ ื”ืึทืจืฅ :: ืึธื ืฆื•ื”ืขืจืขื ื™ืฉ :: black_box ืคึฟื•ื ืงืฆื™ืข, ื•ื•ืึธืก ืคืฉื•ื˜ ืงืขืจื˜ ื“ื™ ื‘ืืงื•ืžืขืŸ ื•ื•ืขืจื˜. ื•ื•ื™ื™ึทืœ ื“ืขืจ ืงืึทืžืคึผื™ื™ืœืขืจ ื’ืœื•ื™ื‘ื˜ ืึทื– ืึท ื’ืขื’ืขื‘ืŸ ืคึฟื•ื ืงืฆื™ืข ื˜ื•ื˜ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ื–ืึทืš, ื“ื™ black_box ืคึฟื•ื ืงืฆื™ืข ืงืขื ืขืŸ ื•ื•ืขืจืŸ ื’ืขื ื•ืฆื˜ ืฆื• ื“ื™ืกื™ื™ื‘ืึทืœ ื“ื™ ืงืึทืžืคึผื™ื™ืœืขืจ ืก ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธืŸ ืคื•ืŸ ืœื•ืคึผืก ื•ื•ืขืŸ ืคึผืขืจืคืึธืจืžื™ื ื’ ืงืึธื“ ืคืึธืจืฉื˜ืขืœื•ื ื’ ื˜ืขืกื˜ื™ื ื’ ืึธื“ืขืจ ื•ื•ืขืŸ ื™ื’ื–ืึทืžื™ื ื™ื ื’ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืžืึทืฉื™ืŸ ืงืึธื“ (ืึทื–ื•ื™ ืึทื– ื“ืขืจ ืงืึทืžืคึผื™ื™ืœืขืจ ืงืขืŸ ื ื™ืฉื˜ ื‘ืึทื˜ืจืึทื›ื˜ืŸ ื“ื™ ืงืึธื“ ืึทื ื™ื•ื–ืึทื‘ืึทืœ ืื•ืŸ ื‘ืึทื–ื™ื™ึทื˜ื™ืงืŸ ืขืก). ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืŸ ื“ืขื ื‘ื™ื™ึทืฉืคึผื™ืœ ืื•ื ื˜ืŸ, ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ black_box(v.as_ptr()) ืคึผืจื™ื•ื•ืขื ืฅ ื“ื™ ืงืึทืžืคึผื™ื™ืœืขืจ ืคื•ืŸ ืึทืกื•ืžื™ื ื’ ืึทื– ื“ื™ ื•ื•ืขืงื˜ืึธืจ ื•ื• ืื™ื– ื ื™ืฉื˜ ืื™ืŸ ื ื•ืฆืŸ. ื ื•ืฆืŸ ืกื˜ื“ :: ืึธื ืฆื•ื”ืขืจืขื ื™ืฉ :: ืฉื•ื•ืึทืจืฅ_ื‘ืึธืงืก; fn push_cap (v: & ืžื•ื˜ ื•ื•ืขืง) {ืคึฟืึทืจ ืื™ืš ืื™ืŸ 0..4 {v.push (i); black_box(v.as_ptr()); } }
  • ื“ืขืจ ืคึผืขืงืœ ืคืึทืจื•ื•ืึทืœื˜ืขืจ "ืงืึทืจื’ืึธ" ืึธืคืคืขืจืก ื“ื™ "ื ืขื" ื‘ืึทืคึฟืขืœ, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื‘ืึทื–ื™ื™ึทื˜ื™ืงืŸ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื– ืคื•ืŸ ื“ื™ Cargo.toml ื‘ืึทืฉื™ื™ึทืžืคึผืขืจืœืขืš ืคึฟื•ืŸ ื“ื™ ื‘ืึทืคึฟืขืœืŸ ืฉื•ืจื”.
  • ื ื ื™ื™ึทืข ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ API ืื™ื– ืืจื™ื‘ืขืจื’ืขืคืืจืŸ ืฆื• ื“ืขืจ ืงืึทื˜ืขื’ืึธืจื™ืข ืคื•ืŸ โ€‹โ€‹ืกื˜ืึทื‘ื™ืœ, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื“ื™ ืžืขื˜ื”ืึธื“ืก ืื•ืŸ ื™ืžืคึผืœืึทืžืึทื ืฅ ืคื•ืŸ ื˜ืจื™ื™ืฅ ื–ืขื ืขืŸ ืกื˜ื™ื™ื‘ืึทืœื™ื™ื–ื“:
    • proc_macro::ืฉืคึผืึทืŸ::ืžืงื•ืจ_ื˜ืขืงืกื˜
    • ื•*::{ื˜ืฉืขืงื˜_add_signed, overflowing_add_signed, saturating_add_signed, wrapping_add_signed}
    • ืื™ืš *::{checked_add_unsigned, overflowing_add_unsigned, saturating_add_unsigned, wrapping_add_unsigned}
    • ืื™ืš *::{checked_sub_unsigned, overflowing_sub_unsigned, saturating_sub_unsigned, wrapping_sub_unsigned}
    • BTreeSet:: {ืขืจืฉื˜ืขืจ, ืœืขืฆื˜ืข, pop_first, pop_last}
    • BTreeMap::{first_key_value, last_key_value, first_entry, last_entry, pop_first, pop_last}
    • ืœื™ื™ื’ AsFd ื™ืžืคึผืœืึทืžืึทื ืฅ ืคึฟืึทืจ ืกื˜ื“ื™ืึธ ืฉืœืึธืก ื˜ื™ื™ืคึผืก ื•ื•ืขืŸ ื ื™ืฆืŸ WASI.
    • ื™ืžืคึผืœ TryFrom > ืคึฟืึทืจ ื‘ืึธืงืก <[ื”; ื ]>
    • core::hint::black_box
    • ื’ืขื“ื•ื™ืขืจ::try_from_secs_{f32,f64}
    • ืึธืคึผืฆื™ืข :: ืึทื ื–ื™ืคึผ
    • std::os::fd
  • ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืจื™ื™ื ื“ื–ืฉืึทื– "..X" ืื•ืŸ "..=X" ืื™ื– ืขืจืœื•ื™ื‘ื˜ ืื™ืŸ ื˜ืขืžืคึผืœืึทื˜ืขืก.
  • ื•ื•ืขืŸ ืึทืกืขืžื‘ืึทืœื™ื ื’ ื“ื™ ืคืจืึธื ื˜ืขื ื“ ืคื•ืŸ ื“ื™ ืจืึทืกืง ืงืึทืžืคึผื™ื™ืœืขืจ ืื•ืŸ ื“ื™ ื‘ืึทืงืขื ื“ ืคื•ืŸ LLVM, ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืžืึธื“ืขืก LTO (Link Time Optimization) ืื•ืŸ BOLT (Binary Optimization and Layout Tool) ื–ืขื ืขืŸ ื’ืขื ื™ืฆื˜, ื•ื•ืึธืก ืœืึธื–ืŸ ื™ื ืงืจื™ืกื™ื ื’ ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ ื“ื™ ืจื™ื–ืึทืœื˜ื™ื ื’ ืงืึธื“ ืื•ืŸ ืจื™ื“ื•ืกื™ื ื’ ื–ื›ึผืจื•ืŸ ืงืึทื ืกืึทืžืฉืึทืŸ.
  • ื“ื™ ื“ืจื™ื˜ ืžื“ืจื’ื” ืคื•ืŸ ืฉื˜ื™ืฆืŸ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืคึฟืึทืจ ื“ื™ armv5te-none-eabi ืื•ืŸ thumbv5te-none-eabi ืคึผืœืึทื˜ืคืึธืจืžืก. ื“ื™ ื“ืจื™ื˜ ืžื“ืจื’ื” ื™ื ื•ื•ืึทืœื•ื•ื– ื™ืงืขืจื“ื™ืง ืฉื˜ื™ืฆืŸ, ืึธื‘ืขืจ ืึธืŸ ืึธื˜ืึทืžื™ื™ื˜ื™ื“ ื˜ืขืกื˜ื™ื ื’, ืืจื•ื™ืกื’ืขื‘ืŸ ื‘ืึทืึทืžื˜ืขืจ ื‘ื•ื™ืขืŸ ืึธื“ืขืจ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืฆื™ ื“ื™ ืงืึธื“ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื‘ื•ื™ื˜.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ืžื™ื˜ ืžืึทืงืึธืก ื•ื ื™ื•ื•ืขืจืกืึทืœ ืœื™ื™ื‘ืจืขืจื™ื–.

ืื™ืŸ ื“ืขืจืฆื•, ืžื™ืจ ืงืขื ืขืŸ ื˜ืึธืŸ ื“ื™ ื™ื ืงืœื•ื–ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืคืจืึธื ื˜ ืกื•ืฃ ืคื•ืŸ ื“ื™ ืจื•ืกื˜ ืฉืคึผืจืึทืš ืงืึทืžืคึผื™ื™ืœืขืจ (gccrs) ืื™ืŸ ื“ื™ GCC ืงืึธื“ ื‘ืึทื–ืข. ื“ื™ ืคืจืึธื ื˜ืขื ื“ ืื™ื– ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืื™ืŸ ื“ื™ GCC 13 ืฆื•ื•ื™ื™ึทื’, ื•ื•ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคืจื™ื™ ืžืื™ 2023. ืกื˜ืึทืจื˜ื™ื ื’ ืžื™ื˜ GCC 13, ื“ื™ ื’ืขื‘ื•ื™ืจืŸ GCC ืžื›ืฉื™ืจื™ื ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืฆื• ืฆื•ื ื•ื™ืคื ืขืžืขืŸ ืžื’ื™ืœื” ืื™ืŸ ื“ื™ ืจื•ืกื˜ ืฉืคึผืจืึทืš ืึธืŸ ื“ื™ ื ื•ื™ื˜ ืฆื• ื™ื ืกื˜ืึทืœื™ืจืŸ ื“ื™ Rustc ืงืึทืžืคึผื™ื™ืœืขืจ, ื’ืขื‘ื•ื™ื˜ ืžื™ื˜ LLVM ื“ื™ื•ื•ืขืœืึทืคึผืžืึทื ืฅ. ื“ื™ GCC 13 ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ Rust ื•ื•ืขื˜ ื–ื™ื™ืŸ ืึท ื‘ื™ืชื ื•ื•ืขืจืกื™ืข, ื ื™ื˜ ืขื ื™ื™ื‘ืึทืœื“ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜.

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’