Puo ea Rust programming 1.52 tokollo

Ho lokolloa ha puo ea lenaneo la tsamaiso Rust 1.52, e thehiloeng ke morero oa Mozilla, empa hona joale e ntlafalitsoe ka tlas'a ts'ebetso ea mokhatlo o ikemetseng o sa etseng phaello Rust Foundation, e hatisitsoe. Puo e tsepamisitse maikutlo holim'a ts'ireletso ea mohopolo, e fana ka taolo ea memori ea othomathike, 'me e fana ka mekhoa ea ho fihlela ts'ebetso e phahameng ea ts'ebetso ntle le ho sebelisa pokello ea lithōle kapa nako ea ho sebetsa (nako ea ho sebetsa e fokotsehile ho qala le ho boloka laebrari e tloaelehileng).

Taolo ea memori ea othomathike ea Rust e felisa liphoso ha e tsamaisa lintlha le ho sireletsa khahlanong le mathata a bakoang ke ho qhekella ha memori ea boemo bo tlase, joalo ka ho fihlella sebaka sa memori kamora hore e lokolloe, li-null pointer dereferences, buffer overruns, jj. Ho aba lilaebrari, ho etsa bonnete ba ho kopanya le ho laola ba itšetlehileng ka bona, morero o nts'etsapele mookameli oa thepa ea thepa. Sebaka sa polokelo ea crates.io se tšehetsoa bakeng sa lilaebrari tse amohelang batho.

Litlhahiso tse ka sehloohong:

  • E tlositsoe ho tlamella taelo ea ho phethahatsa litaelo tsa "cargo check" le "cargo clippy". Nakong e fetileng, ho bitsa "cargo clippy" ka mor'a "chelete ea thepa" ha hoa ka ha qala sesebelisoa sa clippy (linter) ka lebaka la khaello ea karohano ea cache bakeng sa mekhoa ena ea ho hlahloba. Hona joale bothata bona bo rarollotsoe 'me tatellano eo ka eona "cargo clippy" le "cargo check" e bitsoang "cargo check" ha e sa le taba.
  • Karolo e ncha ea API e fetiselitsoe sehlopheng se tsitsitseng, ho kenyelletsa le mekhoa e latelang e tsitsitsoeng:
    • Likhang:: joalo ka_st
    • setšoantšo: MAX
    • Char::REPLACEMENT_CHARACTER
    • Char::UNICODE_VERSION
    • char::decode_utf16
    • char::ho tloha_digit
    • char::ho tloha_u32_e sa hlahlojoa
    • Char::ho tloha_u32
    • selae::karohano_ntlha
    • str::rsplit_hang
    • str::arola_hang
  • Sebopeho sa "const", se khethollang monyetla oa ho se sebelisa maemong afe kapa afe ho fapana le li-constants, se sebelisoa mekhoeng:
    • Char::len_utf8
    • Char::len_utf16
    • Char::to_ascii_litlhaku tse kholo
    • Char::to_ascii_lowercase
    • Char::eq_ignore_ascii_case
    • u8::ho_ascii_lengolo le leholo
    • u8::to_ascii_lowercase
    • u8::eq_ignore_ascii_case
  • E kentse lint check unsafe_op_in_unsafe_fn ho fumana hore na khoutu e sa bolokehang e sebelisoang mesebetsing e sa bolokehang e entsoe ka li-blocks tse sa bolokehang.
  • E lumelloa ho lahlela lisupa tse feto-fetohang ho li-arrays ka mokhoa oa li-pointers ho mofuta oa karolo ea sehlopha. let mut x: [sebelisa; 2] = [0, 0]; let p = &mut x as *mut use; tlohela p = &mut x joalo ka *const usize;
  • Licheke tse ncha tse 9 li kentsoe ho clippy (linter).
  • Mookameli oa thepa ea thepa hona joale o tšehetsa sebaka sa "manifest_path" ho JSON bakeng sa liphutheloana. Tšehetso e ekelitsoeng bakeng sa ho hlakisa lintlha tsa laesense ka sebopeho sa SPDX 3.11 sebakeng sa polokelo ea crates.io.
  • E lumelletsoe ho hlakisa li-filters tse ngata ha ho etsoa liteko, mohlala, "cargo test - foo bar" e tla tsamaisa liteko tsohle tse tsamaellanang le limaske "foo" le "bar".
  • Sesebelisoa sa kamehla sa LLVM se ntlafalitsoe ho LLVM 12.
  • Boemo ba boraro ba ts'ehetso bo kentsoe ts'ebetsong bakeng sa s390x-unknown-linux-musl, riscv32gc-unknown-linux-musl, riscv64gc-unknown-linux-musl le powerpc-unknown-openbsd platforms. Boemo ba boraro bo kenyelletsa tšehetso ea mantlha, empa ntle le tlhahlobo e ikemetseng, phatlalatso ea meaho ea semmuso, le netefatso ea ho aha khoutu.

Source: opennet.ru

Eketsa ka tlhaloso