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

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

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

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

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

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

    ื›ื“ื™ ืœืฆืžืฆื ืืช ื”ืขื™ื›ื•ื‘ื™ื ื”ื ื’ืจืžื™ื ืžื”ื•ืจื“ืช ืื™ื ื“ืงืก ืžืœื, Sparse ื‘ืžืงื•ื ืœื’ืฉืช ืœืื™ื ื“ืงืก ื‘ืืžืฆืขื•ืช Git ื›ื•ืœืœ ื”ื•ืจื“ื” ื™ืฉื™ืจื” ื“ืจืš HTTPS ืจืง ืืช ื ืชื•ื ื™ ื”ืื™ื ื“ืงืก ื”ื“ืจื•ืฉื™ื, ื”ืžื›ืกื™ื ืืช ื”ืชืœื•ืช ืฉืœ ืคืจื•ื™ืงื˜ ืžืกื•ื™ื. ืฉื™ืจื•ืช ื—ื“ืฉ, index.crates.io, ืžืฉืžืฉ ื›ื“ื™ ืœืกืคืง ื ืชื•ื ื™ ืื™ื ื“ืงืก. ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื”ืคืจื•ื˜ื•ืงื•ืœ ื”ื—ื“ืฉ ืžืชื•ื›ื ืŸ ืœืฉืžืฉ ื‘ืขื ืฃ Rust 1.70, ื•ืœืคื ื™ ื›ืŸ, ื›ื“ื™ ืœืืคืฉืจ ืื•ืชื•, ื ื™ืชืŸ ืœื”ื’ื“ื™ืจ ืืช ืžืฉืชื ื” ื”ืกื‘ื™ื‘ื” "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" ืื• ืœื”ื•ืกื™ืฃ ืืช ื”ืคืจืžื˜ืจ 'ืคืจื•ื˜ื•ืงื•ืœ =' ืœ-"[registries. crates-io]" ื‘ืงื•ื‘ืฅ .cargo/config.toml 'ื“ืœื™ืœ'.

  • ื”ื•ืกื™ืฃ ืืช ื”ืžืืงืจื• "pin!", ื”ืžืืคืฉืจ ืœืš ืœื™ืฆื•ืจ ืžื‘ื ื” Pin<&mut T> ืžื”ื‘ื™ื˜ื•ื™ "T" ืขื ื”ืฆืžื“ื” ืžืงื•ืžื™ืช ืฉืœ ื”ืžืฆื‘ ืฉืœื• (ื‘ื ื™ื’ื•ื“ ืœ-Box::pin, ื”ื•ื ืœื ืžืงืฆื” ื–ื™ื›ืจื•ืŸ ื‘ืขืจื™ืžื”, ืืœื ืžืงืฉืจ ื‘ืจืžืช ื”ืขืจื™ืžื”).
  • ื”ื•ืฆืข ืžื˜ืคืœ ื‘ืฉื’ื™ืื•ืช ื‘ืจื™ืจืช ืžื—ื“ืœ ื‘ื”ืงืฆืืช ื–ื™ื›ืจื•ืŸ, ื‘ืฉื™ืžื•ืฉ ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ื—ื‘ื™ืœืช ื”ื”ืงืฆืื” ื”ืกื˜ื ื“ืจื˜ื™ืช. ื™ื™ืฉื•ืžื™ื ื”ืžืืคืฉืจื™ื ืจืง alloc (ืœืœื std) ื™ืชืงืฉืจื• ื›ืขืช ืœืžื˜ืคืœ "ืคืื ื™ืง!" ื›ืืฉืจ ื”ืงืฆืืช ื–ื™ื›ืจื•ืŸ ื ื›ืฉืœืช, ืฉื ื™ืชืŸ ืœื™ื™ืจื˜ ืื•ืชื• ื‘ืื•ืคืŸ ืื•ืคืฆื™ื•ื ืœื™ ื‘ืืžืฆืขื•ืช "#[panic_handler]". ืชื•ื›ื ื™ื•ืช ื”ืžืฉืชืžืฉื•ืช ื‘ืกืคืจื™ื™ืช std ื™ืžืฉื™ื›ื• ืœื”ื“ืคื™ืก ืžื™ื“ืข ืฉื’ื™ืื” ืœ-stderr ื•ืœืชืจืกืง.
  • ื—ืœืง ื—ื“ืฉ ืฉืœ ื”-API ื”ื•ืขื‘ืจ ืœืงื˜ื’ื•ืจื™ื” ืฉืœ ื™ืฆื™ื‘, ื›ื•ืœืœ ื”ืฉื™ื˜ื•ืช ื•ื”ื™ื™ืฉื•ื ืฉืœ ืชื›ื•ื ื•ืช ื”ืชื™ื™ืฆื‘ื•:
    • {core,std}::pin::pin!
    • impl ืžืืช ืขื‘ื•ืจ {f32,f64}
    • std::path::MAIN_SEPARATOR_STR
    • impl DerefMut ืขื‘ื•ืจ PathBuf
  • ื”ืชื›ื•ื ื” "const", ื”ืงื•ื‘ืขืช ืืช ื”ืืคืฉืจื•ืช ืœื”ืฉืชืžืฉ ื‘ื” ื‘ื›ืœ ื”ืงืฉืจ ื‘ืžืงื•ื ื‘ืงื‘ื•ืขื™ื, ืžืฉืžืฉืช ื‘ืคื•ื ืงืฆื™ื” VecDeque::new.
  • ื›ื“ื™ ืœืขื‘ื•ื“ ืขืœ ืคืœื˜ืคื•ืจืžืช ืื ื“ืจื•ืื™ื“, ื ื“ืจืฉ ื›ืขืช ืœืคื—ื•ืช NDK r25 (API 19), ื›ืœื•ืžืจ. ื’ืจืกืช ื”ืื ื“ืจื•ืื™ื“ ื”ืžื™ื ื™ืžืœื™ืช ื”ื ืชืžื›ืช ื”ื•ืขืœืชื” ืœ-4.4 (KitKat).
  • ืจืžืช ื”ืชืžื™ื›ื” ื”ืฉืœื™ืฉื™ืช ื”ื•ื˜ืžืขื” ืขื‘ื•ืจ ืคืœื˜ืคื•ืจืžืช Sony PlayStation Vita (armv7-sony-vita-newlibeabihf). ื”ืจืžื” ื”ืฉืœื™ืฉื™ืช ื›ื•ืœืœืช ืชืžื™ื›ื” ื‘ืกื™ืกื™ืช, ืืš ืœืœื ื‘ื“ื™ืงื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช, ืคืจืกื•ื ื‘ื•ื ื™ื ืจืฉืžื™ื™ื ืื• ื‘ื“ื™ืงื” ืื ื ื™ืชืŸ ืœื‘ื ื•ืช ืืช ื”ืงื•ื“.

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

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