Rust 1.34 Fa'apolokalame Gagana Fa'asa'oloto

O le polokalame polokalame gagana Rust 1.34, na atiae e le poloketi Mozilla, ua tatalaina. O le gagana e taulaʻi i le saogalemu o manatuaga, e maua ai le pulega otometi manatua, ma maua ai se auala e ausia ai le maualuga o galuega tutusa e aunoa ma le faʻaogaina o le lapisi poʻo le taimi faʻataʻavale.

Ole pulega otometi a le Rust e fa'asa'olotoina ai le tagata e faia le fa'aogaina o le fa'asinomaga ma puipuia mai fa'afitauli e tula'i mai i le fa'aogaina o mafaufauga maualalo, e pei ole fa'aogaina ole manatua e leai se totogi, fa'aletonu le fa'asinoala, fa'alavelave fa'alavelave, ma isi mea faapena. Ina ia tufatufaina faletusi, faʻamautinoa le faʻapipiʻiina ma pulea faʻalagolago, o loʻo atinaʻe e le poloketi le pule o pusa uta uta, lea e mafai ai ona e mauaina faletusi manaʻomia mo le polokalame i le kiliki e tasi. O le crates.io repository e lagolagoina mo le talimalo faletusi.

Autu fa'afouga:

  • Ua faaopoopo e le pule o pusa uta mea faigaluega e galulue ai ma isi resitala afifi e mafai ona ola faatasi ma le crates.io resitala lautele. Mo se faʻataʻitaʻiga, ua mafai nei e le au atiaʻe o talosaga faʻapitoa ona faʻaogaina a latou lava resitala tumaoti, lea e mafai ona faʻaogaina pe a lisiina faʻalagolago i Cargo.toml, ma faʻaoga se faʻataʻitaʻiga faʻataʻitaʻiga e tutusa ma crates.io mo a latou oloa, faʻapea foʻi ma faʻatatau i faʻalagolago i pusa uma e lua. io ma lau lava resitala.

    E fa'aopoopo se resitala i fafo i le ~/.cargo/config
    o se filifiliga fou "loʻu-resitala" o loʻo tuʻuina atu i le "[resitala]" vaega, ma se "isi-crate" filifiliga ua faʻaopoopoina e taʻua ai le resitala fafo i faʻalagolago i Cargo.toml i le vaega "[dependencies]". Ina ia faʻafesoʻotaʻi i se resitala faʻaopoopo, naʻo le tuʻu o le faʻamaoniga faʻamaonia i le ~/.cargo/credentials faila ma faʻatautaia le poloaiga
    "cargo login --registry=my-registry" ma fa'asalalau se afifi -
    "cargo publish -registry=my-registry";

  • Fa'aopoopoina le lagolago atoatoa mo le fa'aogaina o le "?" operator. i doctests, lea e mafai ai ona e faʻaogaina faʻataʻitaʻiga code mai faʻamaumauga e fai ma suʻega. Fa'atonu muamua
    "?" e mafai ona fa'aoga e taulima ai mea sese i le taimi o le su'ega na'o le i ai o le "fn main()" galuega po'o le "#[test]" galuega;

  • I uiga fa'ale-aganu'u ua fa'amalamalamaina i le fa'aogaina o macros fa'atonu, e mafai ona fa'aogaina seti fa'ailoga ("#[attr($tokens)]", "#[attr[$tokens]] ma #[attr{$tokens}]"). I le taimi muamua, e mafai ona faʻamaonia elemene i se laʻau / recursive fomu e faʻaaoga ai le manoa, mo se faʻataʻitaʻiga "#[foo(bar, baz(quux, foo = "bar"))]", ae o lea ua mafai ona faʻaaoga faʻamaumauga (' #[range(0. .10)]') ma fausaga e pei o le “#[bound(T: MyTrait)]”;
  • O uiga TryFrom ma TryInto ua faʻamautuina, faʻatagaina ituaiga suiga ma le taulimaina o mea sese. Mo se faʻataʻitaʻiga, o metotia e pei o from_be_bytes faʻatasi ai ma ituaiga numera e faʻaaoga ai faʻasologa e fai ma faʻaoga, ae o faʻamatalaga e masani ona sau i se ituaiga Slice, ma o le faʻaliliuina i le va o faʻasologa ma fasi pepa e faʻafitauli e fai ma le lima. Faatasi ai ma le fesoasoani o uiga fou, e mafai ona faia le gaioiga faʻapitoa i luga o le lele e ala i se valaau i .try_into (), mo se faʻataʻitaʻiga, "let num = u32:: from_be_bytes(slice.try_into()?)". Mo suiga e manuia i taimi uma (mo se faʻataʻitaʻiga, mai le ituaiga u8 i le u32), ua faʻaopoopoina se Infallible error type e faʻatagaina ai le faʻaogaina manino o
    TryFrom mo fa'atinoga uma o iai o le "Mai";

  • Fa'ate'aina le CommandExt::before_exec function, lea na fa'atagaina ai le fa'atinoina o se fa'atonu a'o le'i fa'atinoina lea na fa'atinoina i le tulaga o se faiga a le tamaititi na tu'u ina ua uma le vala'au. I lalo o ia tulaga, o nisi punaoa o le faagasologa o matua, e pei o faila faila ma nofoaga e manatua ai faafanua, e mafai ona faaluaina, lea e mafai ona taitai atu ai i amioga le faʻamalamalamaina ma le le saʻo o le faʻaogaina o faletusi.
    Nai lo le before_exec, e fautuaina e faʻaaoga le galuega le saogalemu CommandExt :: pre_exec.

  • Tu'aiga fa'auma fa'aatomika fa'amautu ma lē fa'ailogaina e amata mai i le 8 i le 64 bits (fa'ata'ita'iga, AtomicU8), fa'apea fo'i ma ituaiga NonZeroI[8|16|32|54|128].
  • O se vaega fou o le API ua siitia i le vaega mautu, e aofia ai le Any::type_id, Error::type_id, slice::sort_by_cached_key, str::sola_*, str::split_ascii_whitespace, Instant::checked_[add|sub ] ma le SystemTime auala ua fa'amautuina ::checked_[add|sub]. O le iter::from_fn ma le iter::sucessors functions ua mautu;
  • Mo ituaiga numera uma, o le siaki_pow, saturating_pow, wrapping_pow ma overflowing_pow ua fa'atinoina;
  • Faʻaopoopo le gafatia e faʻamalosia ai faʻataʻitaʻiga i le tulaga fesoʻotaʻiga e ala i le faʻamaonia o le "-C linker-plugin-lto" fausia filifiliga (rustc compiles Rust code i le LLVM bitcode, lea e mafai ai ona faʻaogaina LTO optimizations).

puna: opennet.ru

Faaopoopo i ai se faamatalaga