Tokollo ea puo ea Rust ea 2021 (1.56)

Ho lokolloa ha puo ea lenaneo la tsamaiso Rust 1.56, e thehiloeng ke morero oa Mozilla, empa hona joale e ntlafalitsoe tlas'a ts'ebetso ea mokhatlo o ikemetseng o se nang phaello Rust Foundation, e hatisitsoe. Ntle le nomoro ea mofuta o tloaelehileng, tokollo e boetse e khethiloe Rust 2021 mme e tšoaea botsitso ba liphetoho tse reriloeng lilemong tse tharo tse fetileng. Rust 2021 e tla boela e sebetse e le motheo oa ho eketsa ts'ebetso lilemong tse tharo tse latelang, tse tšoanang le kamoo ho lokolloa ha Rust 2018 ho ileng ha fetoha motheo oa tsoelo-pele ea puo lilemong tse tharo tse fetileng.

Ho boloka tumellano, bahlahisi ba ka sebelisa "2015", "2018" le "2021" mananeong a bona, ho lumella mananeo hore a hokahane le lilae tsa boemo ba puo tse tsamaellanang le likhatiso tse khethiloeng tsa Rust. Likhatiso li ile tsa hlahisoa ho arola liphetoho tse sa lumellaneng 'me li lokiselitsoe metadata ea liphutheloana tsa thepa ka karolo ea "khatiso" karolong ea "[package]". Mohlala, khatiso ea "2018" e kenyelletsa ts'ebetso e tsitsitseng ho elella bofelong ba 2018 hape e akaretsa liphetoho tsohle tse ling tse sa senyeng tšebelisano. Khatiso ea 2021 e kenyelletsa likarolo tse senyang tšebelisano-'moho tse hlahisitsoeng tokollong ea hajoale ea 1.56 mme e amohetsoe ts'ebetsong nakong e tlang. Ho phaella puong ka boeona, bahlophisi ba boetse ba ela hloko boemo ba lisebelisoa le litokomane.

Ho se lumellane ho hoholo ho tlalehiloeng ho Rust 2021:

  • Karohano ea ho Tšoaea ha Likoello - Likoahelo joale li ka nka mabitso a sebaka ka seng ho fapana le sekhetho kaofela. Ka mohlala, "|| selepe + 1" se tla hapa feela "selepe" sebakeng sa "a".
  • The IntoIterator trait for arrays: array.into_iter() eu lumella ho pheta-pheta likarolo tse ngata ka boleng, eseng ka litšupiso.
  • Ts'ebetso ea mantsoe a "|" e fetotsoe ho macro_rules (Boolean KAPA) ka lipaterone - Sehlakisi sa ":pat" lipapisong se hlompha "A | B".
  • Motsamaisi oa sephutheloana sa thepa o kenyelletsa ka ho sa feleng mofuta oa bobeli oa sephetho sa likarolo, tšehetso e hlahang ho Rust 1.51.
  • Litšobotsi tsa TryFrom, TryInto le FromIterator li kentsoe mojuleng oa selelekela sa laeborari e tloaelehileng.
  • The panic!(..) and assert!(expr, ..) macros joale kamehla sebelisa format_args!(..) ho fometa likhoele, tse tšoanang le println!().
  • Lipolelo ident#, ident»..." le ident'...' li bolokiloe ka syntax ea puo.
  • E tlositse bare_trait_objects le litemoso tsa ellipsis_inclusive_range_patterns liphosong.

E ncha ho Rust 1.56:

  • Ho Cargo.toml, karolong ea "[sephutheloana]", ho kentsoe sebaka sa mofuta oa mafome, seo ka sona u ka fumanang mofuta o fokolang o tšehetsoeng oa Rust bakeng sa sephutheloana sa crate. Haeba mofuta oa hajoale o sa lumellane le paramente e boletsoeng, Cargo e tla emisa ho sebetsa ka molaetsa oa phoso.
  • Ha paterone e bapisa ho sebelisoa mantsoe a "binding @ pattern", tšehetso e fanoa bakeng sa ho hlakisa litlamo tse ling (mohlala, "let matrix @ Matrix {row_len, .. } = get_matrix();").
  • Karolo e ncha ea API e fetiselitsoe sehlopheng sa ba tsitsitseng, ho kenyelletsa le mekhoa le ts'ebetsong ea mekhoa e tsitsitseng:
    • std::os::unix::fs::chroot
    • UnsafeCell::raw_get
    • BufWriter::karohano_ka likarolo
    • mantlha::panic::{UnwindSafe, RefUnwindSafe, AssertUnwindSafe}
    • Vec::honyela_ho
    • Khoele::honyela_ho
    • OsString::honyela_ho
    • PathBuf::honyela_ho
    • BinaryHeap::honyela_ho
    • VecDeque::honyela_ho
    • HashMap::honyela_ho
    • HashSet::honyela_ho
  • Sebopeho sa "const", se khethollang monyetla oa ho sebelisa moelelong ofe kapa ofe ho fapana le li-constants, se sebelisoa mesebetsing.
    • std::mem::transmute
    • [T]:: pele
    • [T]:: arohana_pele
    • [T]:: ho qetela
    • [T]::split_last
  • Moqapi o fetotsoe ho sebelisa mofuta oa 13 oa LLVM.
  • Boemo ba bobeli ba tšehetso bo kentsoe tšebetsong bakeng sa sethala sa aarch64-apple-ios-sim le boemo ba boraro bakeng sa lipolanete tsa powerpc-unknown-freebsd le riscv32imc-esp-espidf. Boemo ba boraro bo kenyelletsa ts'ehetso ea mantlha, empa ntle le tlhahlobo ea boiketsetso, meaho ea semmuso ea phatlalatso, kapa ho hlahloba hore na khoutu e ka hahuoa.

Hopola hore Rust e tsepamisitse maikutlo holim'a ts'ireletso ea mohopolo, e fana ka taolo ea memori ea othomathike, 'me e fana ka mokhoa oa ho finyella ho bapisa ho holimo ha ho etsoa mosebetsi ntle le ho sebelisa mokelli oa lithōle kapa nako ea ho sebetsa (nako ea ho sebetsa e fokotsehile ho qala 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.

Source: opennet.ru

Eketsa ka tlhaloso