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

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

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

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

  • ืžื ื”ืœ ื—ื‘ื™ืœื•ืช ื”ืžื˜ืขืŸ ืžืฉืœื‘ ืืช ืคืงื•ื“ืช "ืขืฅ ื”ืžื˜ืขืŸ", ื”ืžืฆื™ื’ื” ื’ืจืฃ ืชืœื•ืช ื“ืžื•ื™ ืขืฅ. ื›ืžื• ื›ืŸ, ื ื•ืกืคื” ื”ืืคืฉืจื•ืช "-duplicates" ("ืขืฅ ืžื˜ืขืŸ -d"), ื”ืžืืคืฉืจืช ืœืš ืœื”ืขืจื™ืš ืชืœื•ืช ื‘ื’ืจืกืื•ืช ืฉื•ื ื•ืช ืฉืœ ืื•ืชื” ื—ื‘ื™ืœื”.

    mdbook v0.3.2 (/Users/src/rust/mdbook)
    โ”œโ”€โ”€ ืืžื•ื ื™ื” v3.0.0
    โ”‚ โ”œโ”€โ”€ html5ever v0.24.0
    โ”‚ โ”‚ โ”œโ”€โ”€ ื™ื•ืžืŸ v0.4.8
    โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ cfg-if v0.1.9
    โ”‚ โ”‚ โ”œโ”€โ”€ mac v0.1.1
    โ”‚ โ”‚ โ””โ”€โ”€ markup5ever v0.9.0
    โ”‚ โ”‚ โ”œโ”€โ”€ ื™ื•ืžืŸ v0.4.8 (*)
    โ”‚ โ”‚ โ”œโ”€โ”€ phf v0.7.24
    โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ phf_shared v0.7.24
    โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ siphasher v0.2.3
    โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ unicase v1.4.2
    โ”‚ โ”‚ โ”‚ [ืชืœื•ืช ื‘ื‘ื ื™ื™ื”] โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ version_check v0.1.5
    ...

  • ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ื ืฉืื™ื ื ืงืฉื•ืจื™ื ืœ-std ("#![no_std]"), ืชืžื™ื›ื” ื‘ื˜ื›ื ื™ืงื•ืช ืชื›ื ื•ืช ืืกื™ื ื›ืจื•ื ื™ ืžื™ื•ืฉืžืช ื‘ื”ืชื‘ืกืก ืขืœ ืคื•ื ืงืฆื™ื™ืช ื”-"async", ื”ื‘ืœื•ืง ื”-async move { ... } ื•ืื•ืคืจื˜ื•ืจ ".await", ืืฉืจ ืคืฉื˜ ืืช ื”ื›ืชื™ื‘ื” ืฉืœ ืžื˜ืคืœื™ื ืฉืื™ื ื ื—ื•ืกืžื™ื ืืช ื–ืจื™ืžืช ื”ืคืงื•ื“ื” ื”ืจืืฉื™ืช.
  • ืชืžื™ื›ื” ื‘ืกื›ื™ืžืช ื”ื’ื“ืจืช ื”ื™ืจืจื›ื™ื™ืช ืžื•ื“ื•ืœ ื”ื ื™ืชื ืช ืœื”ืจื—ื‘ื” ื ื•ืกืคื” ืœืžื ืชื—. ืœื“ื•ื’ืžื”, ื”ืžื‘ื ื” ื”ื‘ื ืœื ื™ืคื™ืง ืฉื’ื™ืื”, ืœืžืจื•ืช ื”ื™ืขื“ืจ ื‘ืคื•ืขืœ ืฉืœ ื”ืžื•ื“ื•ืœ "foo/bar/baz.rs" (ื”ืžื‘ื ื” ืขื“ื™ื™ืŸ ืœื ื—ื•ืงื™ ืžื‘ื—ื™ื ื” ืกืžื ื˜ื™ืช ื•ืขืœื•ืœ ืœื’ืจื•ื ืœืฉื’ื™ืื”, ืืš ื ื™ืชืŸ ืœืจืื•ืช ื•ืœื ืชื— ืืช ื”ืฉื™ื ื•ื™ื™ื ื‘- ืจืžืช ื”ืžืืงืจื• ื•ื”ืงื•ืžืคื™ืœืฆื™ื” ื”ืžื•ืชื ื™ืช):

    #[cfg(FALSE)] mod foo {
    ืกืจื’ืœ ืžื•ื“ {
    mod baz;
    }
    }

  • ืžื”ื“ืจ rustc ื”ื•ืกื™ืฃ ืืช ื”ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘ื“ื’ืœ "-C codegen-units" ื‘ืžืฆื‘ ืื™ื ืงืจืžื ื˜ืœื™. ื”ื”ื˜ืžืขื” ืฉืœ catch_unwind ืขื•ื‘ื“ื” ืžื—ื“ืฉ ื›ืš ืฉืื™ืŸ ืœื” ื”ืฉืคืขื” ืขืœ ื”ื‘ื™ืฆื•ืขื™ื ืื ืชื”ืœื™ืš ื”ื”ืชื ืชืงื•ืช ืžื•ืฉื‘ืช ื•ืœื ื ื–ืจืงื™ื ื—ืจื™ื’ื™ื.
  • ืชืžื™ื›ื” ื‘ืจืžื” 64 ืกื•ืคืงื” ืขื‘ื•ืจ ื”ืคืœื˜ืคื•ืจืžื•ืช aarch64-unknown-none, aarch64-unknown-none-softfloat, arm86-apple-tvos ื•-x64_XNUMX-apple-tvos. ื”ืจืžื” ื”ืฉืœื™ืฉื™ืช ื›ื•ืœืœืช ืชืžื™ื›ื” ื‘ืกื™ืกื™ืช, ืืš ืœืœื ื‘ื“ื™ืงื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช ื•ืคืจืกื•ื ืฉืœ ืžื‘ื ื™ื ืจืฉืžื™ื™ื.
  • ื—ืœืง ื—ื“ืฉ ืฉืœ ืžืžืฉืงื™ API ื”ื•ืขื‘ืจ ืœืงื˜ื’ื•ืจื™ื™ืช ื”ื™ืฆื™ื‘ื•ืช, ื›ื•ืœืœ ืžื™ื•ืฆื‘
    PathBuf::with_capacity,
    PathBuf::capacity,
    PathBuf::clear,
    PathBuf::reserve,
    PathBuf::reserve_exact,
    PathBuf::shrink_to_fit,
    {f32|f64}::to_int_unchecked,
    Layout::align_to,
    ืคืจื™ืกื”::pad_to_align,
    ืคืจื™ืกื”:: ืžืขืจืš ื•
    ืคืจื™ืกื”::extend.

  • ืคื•ื ืงืฆื™ื•ืช ืžื•ืจื—ื‘ื•ืช ืฉืœ ื”ืกืคืจื™ื™ื” ื”ืกื˜ื ื“ืจื˜ื™ืช:
    • ื ื•ืกืฃ ื•ืจื™ืื ื˜ ืžื™ื•ื—ื“ ืฉืœ "vec![]" ื”ืžืฉืชืงืฃ ื™ืฉื™ืจื•ืช ื‘-Vec::new(), ื”ืžืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘-"vec![]" ื‘ื”ืงืฉืจ ื‘ืžืงื•ื ื‘ืงื‘ื•ืขื™ื.
    • ื™ื™ืฉื•ื (impl) ืฉืœ ื”ืชื›ื•ื ื” ื ื•ืกืฃ ื›ื“ื™ ืœื”ืžื™ืจ::Infallible ื‘ืœื™ืœ.
    • OsString ืžื™ื™ืฉืžืช ืžืฆื‘ื™ืขื™ื ื—ื›ืžื™ื DerefMut ะธ IndexMut, ืžื—ื–ื™ืจ ืืช "&mut OsStr".
    • ื ื•ืกืคื” ืชืžื™ื›ื” ืขื‘ื•ืจ Unicode 13.
    • ืžื™ื•ืฉื ื‘ืžื—ืจื•ื–ืช ืž<&mut str>.
    • IoSlice ืžื™ื™ืฉืžืช ืืช ื”ืชื›ื•ื ื” ื”ืขืชืง.
    • Vec ืžื™ื•ืฉื ืž<[T; N]>.
    • proc_macro::LexError ืžื™ื™ืฉืžืช fmt::Display and Error.
  • ื”ืชื›ื•ื ื” "const", ื”ืงื•ื‘ืขืช ืื ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื” ื‘ื›ืœ ื”ืงืฉืจ ื‘ืžืงื•ื ื‘ืงื‘ื•ืขื™ื, ืžืฉืžืฉืช ื‘ืฉื™ื˜ื•ืช from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes ื•-to_ne_bytes ืขื‘ื•ืจ ื›ืœ ืกื•ื’ื™ ื”ืžืกืคืจื™ื ื”ืฉืœืžื™ื.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ื™ืฆื™ืจืช ืกืคืจื™ื•ืช ืกื˜ื˜ื™ื•ืช ื‘ืคื•ืจืžื˜ ".a" ื‘ืžืงื•ื ".lib" ืขื‘ื•ืจ ืคืœื˜ืคื•ืจืžื•ืช GNU ื‘-Windows.
  • ื“ืจื™ืฉื•ืช ื”ืžื™ื ื™ืžื•ื ืขื‘ื•ืจ LLVM ื”ื•ืขืœื• ืœื’ืจืกื” 8 ืฉืœ LLVM.

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

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