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

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

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

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

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

  • ืœืžื”ื“ืจ rustc ื™ืฉ ืžืขืจื›ืช ืžื‘ื•ืกืกืช LLVM ื™ืฆื™ื‘ื” ืœื”ืคืงืช ื ืชื•ื ื™ ื›ื™ืกื•ื™ ื”ืžืฉืžืฉื™ื ืœื”ืขืจื›ืช ื›ื™ืกื•ื™ ืงื•ื“ ื‘ืžื”ืœืš ื‘ื“ื™ืงื”. ื›ื“ื™ ืœืืคืฉืจ ื ืชื•ื ื™ ื›ื™ืกื•ื™ ื‘ืžื”ืœืš ื”ื”ืจื›ื‘ื”, ืขืœื™ืš ืœื”ืฉืชืžืฉ ื‘ื“ื’ืœ "-Cinstrument-coverage", ืœื“ื•ื’ืžื”, ืœื”ืชื—ื™ืœ ืืช ื”ื”ืจื›ื‘ื” ืขื ื”ืคืงื•ื“ื” "RUSTFLAGS="-C instrument-coverage" cargo build". ืœืื—ืจ ื”ืคืขืœืช ืงื•ื‘ืฅ ื”ื”ืคืขืœื” ืฉื”ื•ื“ืจ ื‘ืฆื•ืจื” ื–ื•, ื”ืงื•ื‘ืฅ default.profraw ื™ื™ืฉืžืจ ื‘ืกืคืจื™ื™ื” ื”ื ื•ื›ื—ื™ืช, ืœืขื™ื‘ื•ื“ ืฉื‘ื• ืชื•ื›ืœ ืœื”ืฉืชืžืฉ ื‘ื›ืœื™ ื”ืฉื™ืจื•ืช llvm-profdata ืžื”ืจื›ื™ื‘ llvm-tools-preview. ืœืื—ืจ ืžื›ืŸ ื ื™ืชืŸ ืœื”ืขื‘ื™ืจ ืืช ื”ืคืœื˜ ื”ืžืขื•ื‘ื“ ืขืœ ื™ื“ื™ llvm-profdata ืืœ llvm-cov ื›ื“ื™ ืœื™ืฆื•ืจ ื“ื•ื— ื›ื™ืกื•ื™ ืงื•ื“ ืžื•ืขืจ. ืžื™ื“ืข ืขืœ ื”ืงื™ืฉื•ืจ ืœืงื•ื“ ื”ืžืงื•ืจ ื ืœืงื— ืžืงื•ื‘ืฅ ื”ื”ืคืขืœื” ื”ื ื‘ื“ืง, ื”ื›ื•ืœืœ ืืช ื”ื ืชื•ื ื™ื ื”ื“ืจื•ืฉื™ื ืขืœ ื”ืงืฉืจ ื‘ื™ืŸ ืžื•ื ื™ ื”ื›ื™ืกื•ื™ ืœืงื•ื“. 1| 1|fn main() { 2| 1| println!("ืฉืœื•ื ืขื•ืœื!"); 3| 1|}
  • ื‘ืžื ื”ืœ ื—ื‘ื™ืœื•ืช ื”ืžื˜ืขืŸ ื”ืชื™ื™ืฆื‘ื” ื”ืชืžื™ื›ื” ื‘ื“ื’ืœ "-ืชื–ืžื•ื ื™ื", ื”ื›ื•ืœืœืช ื”ืคืงืช ื“ื•ื— ืžืคื•ืจื˜ ืขืœ ื”ืชืงื“ืžื•ืช ื”ื‘ื ื™ื™ื” ื•ื–ืžืŸ ื”ื‘ื™ืฆื•ืข ืฉืœ ื›ืœ ืฉืœื‘. ื”ื“ื•ื— ืขืฉื•ื™ ืœื”ื™ื•ืช ืฉื™ืžื•ืฉื™ ืœืžื™ื˜ื•ื‘ ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ืชื”ืœื™ืš ื”ื”ืจื›ื‘ื”.
  • ืžื ื”ืœ ื—ื‘ื™ืœื•ืช ื”ืžื˜ืขืŸ ืžืฆื™ืข ืชื—ื‘ื™ืจ ื—ื“ืฉ ืœืžื ื’ื ื•ืŸ ืฉืœ ืงื•ืžืคื™ืœืฆื™ื” ืžื•ืชื ื™ืช ื•ื‘ื—ื™ืจื” ืฉืœ ืชืœื•ืช ืื•ืคืฆื™ื•ื ืœื™ืช, ื”ืžื•ื’ื“ืจ ื‘ืงื•ื‘ืฅ Cargo.toml ืขืœ ื™ื“ื™ ืจื™ืฉื•ื ืจืฉื™ืžื” ืฉืœ ืžืืคื™ื™ื ื™ื ื‘ืขืœื™ ืฉื ื‘ืกืขื™ืฃ [ืชื›ื•ื ื•ืช] ื•ืžื•ืคืขืœ ืขืœ ื™ื“ื™ ื”ืคืขืœืช ื”ืžืืคื™ื™ื ื™ื ื‘ืžื”ืœืš ื‘ื ื™ื™ืช ื”ื—ื‘ื™ืœื” ื‘ืืžืฆืขื•ืช ื”ื“ื’ืœ "--features". ื”ื’ืจืกื” ื”ื—ื“ืฉื” ืžื•ืกื™ืคื” ืชืžื™ื›ื” ื‘ืชืœื•ืช ื‘ืžืจื—ื‘ื™ ืฉืžื•ืช ื ืคืจื“ื™ื ื•ื‘ืชืœื•ืช ื—ืœืฉื”.

    ื‘ืžืงืจื” ื”ืจืืฉื•ืŸ, ืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ืืœืžื ื˜ื™ื ืขื ื”ืงื™ื“ื•ืžืช "dep:" ื‘ืชื•ืš ื”ืงื˜ืข "[features]" ื›ื“ื™ ืœืงืฉืจ ื‘ืžืคื•ืจืฉ ืœืชืœื•ืช ืื•ืคืฆื™ื•ื ืœื™ืช ืžื‘ืœื™ ืœื™ื™ืฆื’ ืืช ื”ืชืœื•ืช ื”ื–ื• ื›ืžืืคื™ื™ืŸ. ื‘ืžืงืจื” ื”ืฉื ื™, ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืกื™ืžื•ืŸ ื‘ืกื™ืžืŸ "?". ("ืฉื ื—ื‘ื™ืœื”?/ืฉื ืชื›ื•ื ื”") ืชืœื•ืช ืื•ืคืฆื™ื•ื ืœื™ืช ืฉื™ืฉ ืœื›ืœื•ืœ ืจืง ืื ืžืืคื™ื™ืŸ ืื—ืจ ื›ื•ืœืœ ืืช ื”ืชืœื•ืช ื”ืื•ืคืฆื™ื•ื ืœื™ืช ื”ื ืชื•ื ื”. ืœื“ื•ื’ืžื”, ื‘ื“ื•ื’ืžื” ืœืžื˜ื”, ื”ืคืขืœืช ื”ืžืืคื™ื™ืŸ serde ืชืืคืฉืจ ืืช ื”ืชืœื•ืช "serde", ื›ืžื• ื’ื ืืช ื”ืžืืคื™ื™ืŸ "serde" ืขื‘ื•ืจ ื”ืชืœื•ืช "rgb", ืืš ืจืง ืื ื”ืชืœื•ืช "rgb" ืžื•ืคืขืœืช ื‘ืžืงื•ื ืื—ืจ: [dependencies] serde = { version = " 1.0.133", optional = true } rgb = { version = "0.8.25", optional = true } [ืชื›ื•ื ื•ืช] serde = ["dep:serde", "rgb?/serde"]

  • ื”ืชืžื™ื›ื” ื‘ื”ื™ื“ื•ืจ ืžืฆื˜ื‘ืจ, ืฉื”ื•ืฉื‘ืชื” ื‘ืžื”ื“ื•ืจื” ื”ืื—ืจื•ื ื”, ื”ื•ื—ื–ืจื”. ื‘ืื’ ื”ืžื”ื“ืจ ืฉื’ืจื ืœื‘ื™ื˜ื•ืœ ื”ืชื›ื•ื ื” ื ืคืชืจื”.
  • ืคืชืจื• ื›ืžื” ื‘ืขื™ื•ืช ื‘ืžืชืŸ ื˜ื™ื™ืžืจื™ื ืžื™ื™ื“ื™ื™ื ืขื ืขืจื•ื‘ื” ืœืชื–ืžื•ืŸ ืžื•ื ื•ื˜ื•ื ื™, ื”ืœื•ืงื— ื‘ื—ืฉื‘ื•ืŸ ืืช ื”ื–ืžืŸ ืฉื”ืžืขืจื›ืช ืžืฉืงื™ืขื” ื‘ืžืฆื‘ ืฉื™ื ื”. ื‘ืขื‘ืจ ื”ืฉืชืžืฉื• ื‘-API ืฉืœ ืžืขืจื›ืช ื”ื”ืคืขืœื” ื‘ื›ืœ ื”ื–ื“ืžื ื•ืช ืฉืืคืฉืจ ืœื”ืคืขืœืช ื”ื˜ื™ื™ืžืจ, ืžื” ืฉืœื ืœืงื— ื‘ื—ืฉื‘ื•ืŸ ืžืฆื‘ื™ื ื‘ืขื™ื™ืชื™ื™ื ื”ืฉื•ื‘ืจื™ื ืืช ื”ืžื•ื ื•ื˜ื•ื ื™ื•ืช ืฉืœ ื”ื–ืžืŸ, ื›ืžื• ื‘ืขื™ื•ืช ื—ื•ืžืจื”, ืฉื™ืžื•ืฉ ื‘ื•ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” ืื• ืฉื’ื™ืื•ืช ื‘ืžืขืจื›ืช ื”ื”ืคืขืœื”.
  • ื—ืœืง ื—ื“ืฉ ืฉืœ ื”-API ื”ื•ืขื‘ืจ ืœืงื˜ื’ื•ืจื™ื” ืฉืœ ื™ืฆื™ื‘, ื›ื•ืœืœ ื”ืฉื™ื˜ื•ืช ื•ื”ื™ื™ืฉื•ื ืฉืœ ืชื›ื•ื ื•ืช ื”ืชื™ื™ืฆื‘ื•:
    • Arc::new_cyclic
    • Rc::new_cyclic
    • ืคืจื•ืกื”::EscapeAscii
    • <[u8]>::escape_ascii
    • u8::escape_ascii
    • Vec::spare_capacity_mut
    • MaybeUninit::assume_init_drop
    • MaybeUninit::assume_init_read
    • i8::abs_diff
    • i16::abs_diff
    • i32::abs_diff
    • i64::abs_diff
    • i128::abs_diff
    • isize::abs_diff
    • u8::abs_diff
    • u16::abs_diff
    • u32::abs_diff
    • u64::abs_diff
    • u128::abs_diff
    • usize::abs_diff
    • ืชืฆื•ื’ื” ืขื‘ื•ืจ io::ErrorKind
    • ืžืืช ืขื‘ื•ืจ ExitCode
    • ืœื ื‘ืฉื‘ื™ืœ ! (ื”ืงืœื“ "ืœืขื•ืœื ืœื")
    • _Op_Assign<$t>
    • arch::is_aarch64_feature_detected!
  • ืจืžืช ื”ืชืžื™ื›ื” ื”ืฉืœื™ืฉื™ืช ื™ื•ืฉืžื” ืขื‘ื•ืจ ื”ืคืœื˜ืคื•ืจืžื•ืช mips64-openwrt-linux-musl* ื•-armv7-unknown-linux-uclibceabi (softfloat). ื”ืจืžื” ื”ืฉืœื™ืฉื™ืช ื›ื•ืœืœืช ืชืžื™ื›ื” ื‘ืกื™ืกื™ืช, ืืš ืœืœื ื‘ื“ื™ืงื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช, ืคืจืกื•ื ื‘ื•ื ื™ื ืจืฉืžื™ื™ื ืื• ื‘ื“ื™ืงื” ืื ื ื™ืชืŸ ืœื‘ื ื•ืช ืืช ื”ืงื•ื“.
  • ื”ืžื”ื“ืจ ื”ื•ื—ืœืฃ ืœืฉื™ืžื•ืฉ ื‘-LLVM 14.

ื‘ื ื•ืกืฃ, ืืชื” ื™ื›ื•ืœ ืœืฉื™ื ืœื‘:

  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘-bootstrapping ืฉืœ ืžื”ื“ืจ rustc ื‘ืืžืฆืขื•ืช ื”-backend rustc_codegen_gcc, ื”ืžืืคืฉืจ ืœืš ืœื”ืฉืชืžืฉ ื‘ืกืคืจื™ื™ืช libgccjit ืžืคืจื•ื™ืงื˜ GCC ื›ืžื—ื•ืœืœ ืงื•ื“ ื‘-rustc, ืžื” ืฉืžืืคืฉืจ ืœ-rustc ืœืกืคืง ืชืžื™ื›ื” ื‘ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ื•ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ื”ื–ืžื™ื ื•ืช ื‘-GCC. ืงื™ื“ื•ื ืžื”ื“ืจ ืคื™ืจื•ืฉื• ื”ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘ืžื—ื•ืœืœ ืงื•ื“ ืžื‘ื•ืกืก GCC ื‘-rustc ื›ื“ื™ ืœื‘ื ื•ืช ืืช ืžื”ื“ืจ rustc ืขืฆืžื•. ื‘ืฆื“ ื”ืคืจืงื˜ื™, ืชื›ื•ื ื” ื–ื• ืžืืคืฉืจืช ืœืš ืœื‘ื ื•ืช ืชื•ื›ื ื™ื•ืช ื—ืœื•ื“ื” ืœืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ืฉืœื ื ืชืžื›ื• ื‘ืขื‘ืจ ื‘-rustc.
  • ื”ืฉื—ืจื•ืจ ืฉืœ ืขืจื›ืช ื”ื›ืœื™ื uutils coreutils 0.0.13 ื–ืžื™ื ื”, ืฉื‘ืชื•ื›ื” ืžืคืชื—ื™ื ืื ืœื•ื’ื™ ืฉืœ ื—ื‘ื™ืœืช GNU Coreutils, ืฉื ื›ืชื‘ื” ืžื—ื“ืฉ ื‘ืฉืคืช Rust. Coreutils ืžื’ื™ืข ืขื ื™ื•ืชืจ ืžืžืื” ื›ืœื™ ืขื–ืจ, ื›ื•ืœืœ sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln ื•-ls. ืžื˜ืจืช ื”ืคืจื•ื™ืงื˜ ื”ื™ื ืœื™ืฆื•ืจ ื™ื™ืฉื•ื ื—ืœื•ืคื™ ื—ื•ืฆื” ืคืœื˜ืคื•ืจืžื•ืช ืฉืœ Coreutils, ื”ืžืกื•ื’ืœ ืœืจื•ืฅ ืขืœ ืคืœื˜ืคื•ืจืžื•ืช Windows, Redox ื•-Fuchsia, ื›ืžื• ื’ื ื”ืคืฆื” ืชื—ืช ืจื™ืฉื™ื•ืŸ MIT ื”ืžืชื™ืจื ื™, ื‘ืžืงื•ื ืจื™ืฉื™ื•ืŸ GPL copyleft.

    ื”ื’ืจืกื” ื”ื—ื“ืฉื” ืฉื™ืคืจื” ื™ื™ืฉื•ืžื™ื ืฉืœ ื›ืœื™ ืฉื™ืจื•ืช ืจื‘ื™ื, ื›ื•ืœืœ ืชืื™ืžื•ืช ืžืฉื•ืคืจืช ืžืฉืžืขื•ืชื™ืช ืฉืœ ื›ืœื™ ื”ืฉื™ืจื•ืช cp, dd, df, split ื•-tr ืขื ืžืงื‘ื™ืœื™ื”ื ืžืคืจื•ื™ืงื˜ GNU. ืชื™ืขื•ื“ ืžืงื•ื•ืŸ ืžืกื•ืคืง. ืžื ืชื— clap ืžืฉืžืฉ ืœื ื™ืชื•ื— ืืจื’ื•ืžื ื˜ื™ื ืฉืœ ืฉื•ืจืช ื”ืคืงื•ื“ื”, ืืฉืจ ืฉื™ืคืจ ืืช ื”ืคืœื˜ ืขื‘ื•ืจ ื”ื“ื’ืœ "--help" ื•ื”ื•ืกื™ืฃ ืชืžื™ื›ื” ื‘ืงื™ืฆื•ืจื™ื ืฉืœ ืคืงื•ื“ื•ืช ืืจื•ื›ื•ืช (ืœื“ื•ื’ืžื”, ื ื™ืชืŸ ืœืฆื™ื™ืŸ "ls -col" ื‘ืžืงื•ื "ls -color" โ€).

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

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