Rust 1.52 Programming Language Release

Ang pagpagawas sa sistema sa programming language nga Rust 1.52, nga gitukod sa proyekto sa Mozilla, apan karon naugmad ubos sa pagdumala sa independenteng non-profit nga organisasyon nga Rust Foundation, gimantala. Ang lengguwahe nagtutok sa kaluwasan sa panumduman, naghatag ug awtomatik nga pagdumala sa panumduman, ug naghatag ug mga paagi aron makab-ot ang taas nga paralelismo sa buluhaton nga walay paggamit ug tigkolekta sa basura o runtime (ang runtime gikunhoran ngadto sa batakang pagsugod ug pagmentinar sa standard library).

Ang awtomatik nga pagdumala sa panumduman sa Rust nagluwas sa developer gikan sa mga sayup kung nagmaniobra sa mga pointer ug nanalipod batok sa mga problema nga motumaw tungod sa ubos nga lebel sa pagmaniobra sa panumduman, sama sa pag-access sa usa ka lugar sa panumduman pagkahuman na-freeze, pagtangtang sa mga null pointer, pag-overrun sa buffer, ug uban pa. Sa pag-apod-apod sa mga librarya, paghatag og mga pagtukod ug pagdumala sa mga dependency, ang proyekto nagpalambo sa Cargo package manager. Gisuportahan ang crates.io repository alang sa pag-host sa mga librarya.

Panguna nga mga inobasyon:

  • Π£Π±Ρ€Π°Π½Π° привязка ΠΊ порядку выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ Β«cargo checkΒ» ΠΈ Β«cargo clippyΒ». РаньшС Π²Ρ‹Π·ΠΎΠ² Β«cargo clippyΒ» послС Β«cargo checkΒ» Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ» ΠΊ запуску ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ clippy (linter) ΠΈΠ·-Π·Π° отсутствия раздСлСния кэшСй для Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½Π° ΠΈ порядок Π²Ρ‹Π·ΠΎΠ²Π° Β«cargo clippyΒ» ΠΈ Β«cargo checkΒ» пСрСстал ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.
  • Usa ka bag-ong bahin sa API ang gibalhin sa stable nga kategorya, lakip ang mga musunod nga pamaagi nga na-stabilize:
    • Arguments::as_str
    • char::MAX
    • char::REPLACEMENT_CHARACTER
    • char::UNICODE_VERSION
    • char::decode_utf16
    • char::gikan sa_digit
    • char::from_u32_unchecked
    • char::gikan sa_u32
    • slice::partition_point
    • str::rsplit_once
    • str::split_once
  • Ang "const" nga hiyas, nga nagtino sa posibilidad sa paggamit niini sa bisan unsa nga konteksto imbes nga mga kanunay, gigamit sa mga pamaagi:
    • char::len_utf8
    • char::len_utf16
    • char::to_ascii_uppercase
    • char::to_ascii_lowercase
    • char::eq_ignore_ascii_case
    • u8::to_ascii_uppercase
    • u8::to_ascii_lowercase
    • u8::eq_ignore_ascii_case
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° lint-ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° unsafe_op_in_unsafe_fn для опрСдСлСния обрамлСния unsafe-Π±Π»ΠΎΠΊΠ°ΠΌΠΈ unsafe-ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π² unsafe-функциях.
  • Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ mutable-ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° массивы Π² Ρ„ΠΎΡ€ΠΌΡƒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Ρ‚ΠΈΠΏ, Ρ‡Ρ‚ΠΎ ΠΈ Ρƒ элСмСнта массива. let mut x: [usize; 2] = [0, 0]; let p = &mut x as *mut usize; let p = &mut x as *const usize;
  • Π’ clippy (linter) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 9 Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ.
  • Π’ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π΅ cargo для ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° поля Β«manifest_pathΒ» Π² JSON. Π’ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ crates.io Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° указания ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ лицСнзиях Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ SPDX 3.11.
  • Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ тСстов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ запуск Β«cargo test β€” foo barΒ» запустит всС тСсты, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ маскам Β«fooΒ» ΠΈ Β«barΒ».
  • ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ инструмСнтарий LLVM ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½ Π΄ΠΎ вСрсии LLVM 12.
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ s390x-unknown-linux-musl, riscv32gc-unknown-linux-musl, riscv64gc-unknown-linux-musl ΠΈ powerpc-unknown-openbsd. Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Π±Π°Π·ΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ, Π½ΠΎ Π±Π΅Π· Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСстирования, ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сборок ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ возмоТности сборки ΠΊΠΎΠ΄Π°.

Source: opennet.ru

Idugang sa usa ka comment