ืฉื—ืจื•ืจ ืฉืคืช ืชื›ื ื•ืช Rust 1.67

ืคืจืกื•ื ืฉืคืช ื”ืชื›ื ื•ืช ืœืžื˜ืจื•ืช ื›ืœืœื™ื•ืช Rust 1.67, ืฉื ื•ืกื“ื” ืขืœ ื™ื“ื™ ืคืจื•ื™ืงื˜ ืžื•ื–ื™ืœื”, ืืš ืคื•ืชื—ื” ื›ืขืช ื‘ื—ืกื•ืช ื”ืขืžื•ืชื” ื”ืขืฆืžืื™ืช Rust Foundation. ื”ืฉืคื” ืžืชืžืงื“ืช ื‘ื‘ื˜ื™ื—ื•ืช ื–ื™ื›ืจื•ืŸ ื•ืžืกืคืงืช ืืช ื”ืืžืฆืขื™ื ืœื”ืฉื’ืช ืžืงื‘ื™ืœื™ื•ืช ืขื‘ื•ื“ื” ื’ื‘ื•ื”ื” ืชื•ืš ื”ื™ืžื ืขื•ืช ืžืฉื™ืžื•ืฉ ื‘ืืกืคืŸ ืืฉืคื” ื•ื–ืžืŸ ืจื™ืฆื” (ื–ืžืŸ ื”ืจื™ืฆื” ืžืฆื˜ืžืฆื ืœืืชื—ื•ืœ ื•ืชื—ื–ื•ืงื” ื‘ืกื™ืกื™ื™ื ืฉืœ ื”ืกืคืจื™ื™ื” ื”ืกื˜ื ื“ืจื˜ื™ืช).

ืฉื™ื˜ื•ืช ื”ื˜ื™ืคื•ืœ ื‘ื–ื™ื›ืจื•ืŸ ืฉืœ Rust ื—ื•ืกื›ื•ืช ืžื”ืžืคืชื— ืฉื’ื™ืื•ืช ื‘ืขืช ืžื ื™ืคื•ืœืฆื™ื” ืฉืœ ืžืฆื‘ื™ืขื™ื ื•ืžื’ื™ื ื•ืช ืžืคื ื™ ื‘ืขื™ื•ืช ื”ืžืชืขื•ืจืจื•ืช ืขืงื‘ ื˜ื™ืคื•ืœ ื‘ื–ื™ื›ืจื•ืŸ ื‘ืจืžื” ื ืžื•ื›ื”, ื›ื’ื•ืŸ ื’ื™ืฉื” ืœืื–ื•ืจ ื–ื™ื›ืจื•ืŸ ืœืื—ืจ ืฉื—ืจื•ืจื•, ื–ื™ื”ื•ื™ ืžืฆื‘ื™ืขื™ null, ื—ืจื™ื’ื•ืช ืžืื’ืจ ื•ื›ื•'. ื›ื“ื™ ืœื”ืคื™ืฅ ืกืคืจื™ื•ืช, ืœืกืคืง ื‘ื ื™ื™ื” ื•ืœื ื”ืœ ืชืœื•ืช, ื”ืคืจื•ื™ืงื˜ ืžืคืชื— ืืช ืžื ื”ืœ ื”ื—ื‘ื™ืœื•ืช Cargo. ืžืื’ืจ crates.io ื ืชืžืš ืœืื™ืจื•ื— ืกืคืจื™ื•ืช.

ื‘ื˜ื™ื—ื•ืช ื–ื™ื›ืจื•ืŸ ืžืกื•ืคืงืช ื‘-Rust ื‘ื–ืžืŸ ื”ืงื•ืžืคื™ืœืฆื™ื” ื‘ืืžืฆืขื•ืช ื‘ื“ื™ืงืช ื”ืคื ื™ื•ืช, ืžืขืงื‘ ืื—ืจ ื‘ืขืœื•ืช ืขืœ ืื•ื‘ื™ื™ืงื˜, ืžืขืงื‘ ืื—ืจ ืžืฉืš ื—ื™ื™ื ืฉืœ ืื•ื‘ื™ื™ืงื˜ (ืกืงื•ืคื™ื), ื•ื”ืขืจื›ืช ื ื›ื•ื ื•ืช ื”ื’ื™ืฉื” ืœื–ื™ื›ืจื•ืŸ ื‘ืžื”ืœืš ื‘ื™ืฆื•ืข ืงื•ื“. Rust ืžืกืคืงืช ื’ื ื”ื’ื ื” ืžืคื ื™ ื”ืฆืคืช ืžืกืคืจื™ื ืฉืœืžื™ื, ื“ื•ืจืฉืช ืืชื—ื•ืœ ื—ื•ื‘ื” ืฉืœ ืขืจื›ื™ ืžืฉืชื ื™ื ืœืคื ื™ ื”ืฉื™ืžื•ืฉ, ืžื˜ืคืœืช ื‘ืฉื’ื™ืื•ืช ื˜ื•ื‘ ื™ื•ืชืจ ื‘ืกืคืจื™ื™ื” ื”ืกื˜ื ื“ืจื˜ื™ืช, ืžื™ื™ืฉืžืช ืืช ื”ืจืขื™ื•ืŸ ืฉืœ ื”ืคื ื™ื•ืช ื•ืžืฉืชื ื™ื ื‘ืœืชื™ ื ื™ืชื ื™ื ืœืฉื™ื ื•ื™ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืžืฆื™ืขื” ื”ืงืœื“ื” ืกื˜ื˜ื™ืช ื—ื–ืงื” ื›ื“ื™ ืœืžื–ืขืจ ืฉื’ื™ืื•ืช ืœื•ื’ื™ื•ืช.

ื—ื™ื“ื•ืฉื™ื ืขื™ืงืจื™ื™ื:

  • ืขื‘ื•ืจ ืคื•ื ืงืฆื™ื•ืช ืืกื™ื ื›ืจื•ืŸ ืขื Future::Output, ื›ืขืช ื ื™ืชืŸ ืœืฆื™ื™ืŸ ื”ืขืจื•ืช "#[must_use]" ื”ื›ื•ืœืœื•ืช ืื–ื”ืจื” ืื ืžืชืขืœืžื™ื ืžืขืจืš ื”ื”ื—ื–ืจื”, ืžื” ืฉืขื•ื–ืจ ืœื–ื”ื•ืช ืฉื’ื™ืื•ืช ื”ื ื’ืจืžื•ืช ืžื”ื”ื ื—ื” ืฉื”ืคื•ื ืงืฆื™ื” ืชืฉื ื” ืืช ื”ืขืจื›ื™ื ื‘ืžืงื•ื ืœื”ื—ื–ื™ืจ ืขืจืš ื—ื“ืฉ. #[must_use] async fn bar() -> u32 { 0 } async fn caller() { bar().await; ืื–ื”ืจื” }: ืคืœื˜ ืœื ื‘ืฉื™ืžื•ืฉ ืฉืœ ืขืชื™ื“ื™ ื”ืžื•ื—ื–ืจ ืขืœ ื™ื“ื™ `ืกืจื’ืœ` ืฉื™ืฉ ืœื”ืฉืชืžืฉ ื‘ื• โ€”> src/lib.rs:5:5 | 5 | bar().await; | ^^^^^^^^^^^^ | = ื”ืขืจื”: `#[warn(unused_must_use)]` ืคื•ืขืœ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ
  • ื”ื™ื™ืฉื•ื ืฉืœ ืชื•ืจื™ FIFO std::sync::mpsc (ืžืจื‘ื” ื™ืฆืจืŸ ื™ื—ื™ื“-ืฆืจื›ืŸ) ืขื•ื“ื›ืŸ, ืืฉืจ ื”ื•ืขื‘ืจ ืœืฉื™ืžื•ืฉ ื‘ืžื•ื“ื•ืœ ืขืจื•ืฅ crossbeam ืชื•ืš ืฉืžื™ืจื” ืขืœ ื”-API ื”ืงื•ื“ื. ื”ื™ื™ืฉื•ื ื”ื—ื“ืฉ ืžืชืืคื™ื™ืŸ ื‘ืคืชืจื•ืŸ ืžืกืคืจ ื‘ืขื™ื•ืช, ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ื™ื•ืชืจ ื•ืชื—ื–ื•ืงืช ืงื•ื“ ืคืฉื•ื˜ื”.
  • ื—ืœืง ื—ื“ืฉ ืฉืœ ื”-API ื”ื•ืขื‘ืจ ืœืงื˜ื’ื•ืจื™ื” ืฉืœ ื™ืฆื™ื‘, ื›ื•ืœืœ ื”ืฉื™ื˜ื•ืช ื•ื”ื™ื™ืฉื•ื ืฉืœ ืชื›ื•ื ื•ืช ื”ืชื™ื™ืฆื‘ื•:
    • {integer}::checked_ilog
    • {integer}::checked_ilog2
    • {integer}::checked_ilog10
    • {ืฉืœื}::ilog
    • {ืฉืœื}::ilog2
    • {ืฉืœื}::ilog10
    • NonZeroU*::ilog2
    • NonZeroU*::ilog10
    • NonZero*::BITS
  • ื”ืชื›ื•ื ื” "const", ื”ืงื•ื‘ืขืช ืืช ื”ืืคืฉืจื•ืช ืœื”ืฉืชืžืฉ ื‘ื” ื‘ื›ืœ ื”ืงืฉืจ ื‘ืžืงื•ื ื‘ืงื‘ื•ืขื™ื, ืžืฉืžืฉืช ื‘ืคื•ื ืงืฆื™ื•ืช:
    • char::from_u32
    • char::from_digit
    • char::to_digit
    • core::char::from_u32
    • core::char::from_digit
  • ืจืžื” ืฉืœื™ืฉื™ืช ืฉืœ ืชืžื™ื›ื” ื™ื•ืฉืžื” ืœืฉื™ืžื•ืฉ ื‘- Rust ื‘ืœื™ื‘ืช ืœื™ื ื•ืงืก (linuxkernel), ื›ืžื• ื’ื ืขื‘ื•ืจ Sony PlayStation 1 (mipsel-sony-psx), PowerPC ืขื AIX (powerpc64-ibm-aix), QNX Neutrino RTOS ( aarch64-unknown-nto-) ืคืœื˜ืคื•ืจืžื•ืช qnx710, x86_64-pc-nto-qnx710). ื”ืจืžื” ื”ืฉืœื™ืฉื™ืช ื›ื•ืœืœืช ืชืžื™ื›ื” ื‘ืกื™ืกื™ืช, ืืš ืœืœื ื‘ื“ื™ืงื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช, ืคืจืกื•ื ื‘ื•ื ื™ื ืจืฉืžื™ื™ื ืื• ื‘ื“ื™ืงื” ืื ื ื™ืชืŸ ืœื‘ื ื•ืช ืืช ื”ืงื•ื“.

ื‘ื ื•ืกืฃ, ืื ื• ื™ื›ื•ืœื™ื ืœืฆื™ื™ืŸ ืืช ื”ืคืจืกื•ื ืขืœ ื™ื“ื™ ARM ืฉืœ ืชื™ืงื•ื ื™ื ื”ืžืืคืฉืจื™ื ืฉื™ืžื•ืฉ ื‘ืฉืคืช Rust ืœืคื™ืชื•ื— ืžื ื”ืœื™ ื”ืชืงื ื™ื ื•ืžื•ื“ื•ืœื™ ืœื™ื‘ืช ืœื™ื ื•ืงืก ืฉื”ื•ืจื›ื‘ื• ืขื‘ื•ืจ ืžืขืจื›ื•ืช ื”ืžื‘ื•ืกืกื•ืช ืขืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช AArch64.

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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”