Puo ea Rust programming 1.63 tokollo

Ho lokolloa ha puo ea lenaneo la Rust 1.63 ka kakaretso, e thehiloeng ke morero oa Mozilla, empa hona joale e ntlafalitsoeng ka tlas'a ts'ebetso ea mokhatlo o ikemetseng o sa etseng phaello oa Rust Foundation, e hatisitsoe. Puo e shebana le ts'ireletso ea mohopolo 'me e fana ka mekhoa ea ho finyella mosebetsi o phahameng oa ho ts'oara mosebetsi ha o ntse o qoba ho sebelisoa ha moqoqo oa lithōle le nako ea ho sebetsa (nako ea ho sebetsa e fokotsehile ho qala ho qala le ho boloka laebrari e tloaelehileng).

Mekhoa ea ho sebetsana le memori ea Rust e boloka moqapi ho tsoa liphosong ha a laola lintlha le ho sireletsa khahlanong le mathata a hlahang ka lebaka la ho tšoara memori ea boemo bo tlaase, joalo ka ho fumana sebaka sa memori ka mor'a hore e lokolloe, ho tlosa li-null pointer, buffer overruns, joalo-joalo. Ho aba lilaebrari, ho fana ka meaho le ho laola litšepe, projeke e nts'etsapele mookameli oa thepa ea Cargo. Sebaka sa polokelo ea crates.io se tšehetsoa bakeng sa lilaebrari tse amohelang batho.

Tšireletseho ea memori e fanoa ka Rust ka nako ea ho bokella ka ho hlahloba litšupiso, ho boloka tlaleho ea botho ba ntho, ho boloka tlaleho ea bophelo ba ntho (scopes), le ho lekola ho nepahala ha phihlello ea mohopolo nakong ea ts'ebetso ea khoutu. Rust e boetse e fana ka ts'ireletso khahlano le phallo e felletseng, e hloka ho qalisoa ha boleng bo fapaneng pele e sebelisoa, e sebetsana le liphoso hamolemo laebraring e tloaelehileng, e sebelisa mohopolo oa litšupiso tse ke keng tsa fetoha le mefuta e fapaneng ka mokhoa o ikhethileng, e fana ka ho thaepa ho tiileng ho fokotsa liphoso tse utloahalang.

Litlhahiso tse ka sehloohong:

  • E kentse std::thread::scope API, e u lumellang hore u thehe likhoele tsa scoped. Ho fapana le likhoele tse neng li le teng pele, std::thread::scope API e lumella ho fetisa data e sa tsitsitseng, athe likhoele tse entsoeng ka mokhoa oa khale oa std::thread::spawn API li ne li hlokoa hore li be le likhang tsohle tse fetisitsoeng, 'me ha lia ka tsa amoheloa. mefuta e alimiloeng. The std::thread::scope API e netefatsa hore likhoele leha e le life tse hlahisitsoeng lia felisoa pele data e khutlisoa, e fana ka tšireletso e lekaneng bakeng sa mochine oa ho alima.
  • Ho hlahisitsoe mefuta e mecha ea lipampiri bakeng sa litlhaloso tsa lifaele - BorrowedFd le OwnedFd, tse fanang ka likalimo le botho. Mefuta e tšoailoe ka "#[repr(transparent)]", e leng se lumellang hore e sebelisoe ka kotloloho litlamong tsa C tsa kantle ka mokhoa oa ho tseba beng.
  • E fane ka bokhoni ba ho letsetsa Condvar::new, Mutex::new and RwLock::ncha molemong oa li-constants ho theha boleng ba lefats'e ba Mutex, RwLock le Condvar ntle le ho sebelisa liphutheloana tsa lazy_static.
  • Bakeng sa mesebetsi e kang fn foo (boleng: T, f: impl Copy) syntax joalo ka “foo::” ea lumelloa (32, 3)”, e bontšang ka ho hlaka mofuta oa generic.
  • Phetoho ea ho sebelisa mokhoa oa NLL (Non-Lexical Lifetimes) ho khetholla mathata a mefuta-futa ea ho alima e phethiloe. NLL e nahanela boemong ba sete ea litsupa ho kerafo ea phallo ea ts'ebetso, e leng se etsang hore ho khonehe ho eketsa boleng ba cheke bakeng sa mefuta-futa ea ho alima (chelete ea ho alima) le ho lumella ho etsoa ha mefuta e meng ea khoutu e nepahetseng, eo pele e neng e baka phoso. Tšehetso bakeng sa mochine oa khale o neng o sebelisa lexical-level bophelo bohle ba tlamang e se e tlositsoe ka ho feletseng ho rustc, 'me tšebeliso ea NLL e ncha e kentsoe ts'ebetsong hohle.
  • Karolo e ncha ea API e fetiselitsoe sehlopheng sa ba tsitsitseng, ho kenyelletsa le mekhoa le ts'ebetsong ea mekhoa e tsitsitseng:
    • sehlopha::ho tloha_fn
    • Lebokose::ka_pin
    • BinaryHeap::try_reserve
    • BinaryHeap::try_reserve_exact
    • OsString::try_reserve
    • OsString::try_reserve_exact
    • PathBuf::try_reserve
    • PathBuf::try_reserve_exact
    • Tsela:: try_exists
    • Ref::sefe_mapa
    • RefMut::sefa_mapa
    • NonNull::<[T]>::len
    • E nang le::clone_into
    • Ipv6Addr::to_ipv4_mapped
    • unix::io::AsFd
    • unix::io::BorrowedFd<'fd>
    • unix::io::OwnedFd
    • windows::io::AsHandle
    • windows::io::BorrowedHandle

      Source: opennet.ru

Eketsa ka tlhaloso