Útgáfa Rust 1.63 almennt forritunarmálsins, stofnað af Mozilla verkefninu, en nú þróað undir merkjum óháðu sjálfseignarstofnunarinnar Rust Foundation, hefur verið gefin út. Tungumálið leggur áherslu á minnisöryggi og veitir leiðina til að ná mikilli samhliða vinnu á sama tíma og forðast notkun á sorphirðu og keyrslutíma (keyrslutími minnkar í grunnuppsetningu og viðhald á venjulegu bókasafni).
Minni meðhöndlunaraðferðir Rust bjarga þróunaraðilanum frá villum við meðhöndlun ábendinga og vernda gegn vandamálum sem koma upp vegna minnis meðhöndlunar á lágu stigi, eins og aðgangur að minnissvæði eftir að það hefur verið losað, frávísun núllbenda, offramkeyrsla á biðminni o.s.frv. Til að dreifa bókasöfnum, útvega smíði og stjórna ósjálfstæði, þróar verkefnið farmpakkastjórann. Crates.io geymslan er studd til að hýsa bókasöfn.
Minni öryggi er veitt í Rust á þýðingu tíma með tilvísun athugun, halda utan um eignarhald hlut, halda utan um líftíma hlut (umfang) og meta réttmæti minni aðgangs meðan kóða er keyrt. Ryð veitir einnig vernd gegn heiltöluflæði, krefst skyldubundinnar frumstillingar breytugilda fyrir notkun, meðhöndlar villur betur í stöðluðu bókasafni, beitir hugmyndinni um óbreytanlegar tilvísanir og breytur sjálfgefið, býður upp á sterka truflanir innsláttar til að lágmarka rökfræðilegar villur.
Helstu nýjungar:
- Bætti við std::thread::scope API, sem gerir þér kleift að búa til scoped þræði. Ólíkt þráðum sem áður voru tiltækir, gerir nýja std::thread::scope API kleift að senda óstöðug gögn að láni, en þræðir sem voru búnir til með því að nota klassíska std::thread::spawn API þurftu að eiga öll rök sem send voru og gátu ekki tekið við lánaðar breytur. Std::thread::scope API tryggir að öllum kviknaði þræði sé slitið áður en gögnum er skilað, sem veitir nægjanlegt öryggi fyrir lántökukerfið.
- Nýjar umbúðir fyrir skráarlýsingar hafa verið lagðar til - BorrowedFd og OwnedFd, sem veita lántöku og eignarhald. Tegundir eru merktar með „#[repr(transparent)]“, sem gerir þeim kleift að nota beint í ytri C-bindingar á eignarmeðvitaðan hátt.
- Gefið til hæfni til að kalla Condvar::new, Mutex::new og RwLock::new í samhengi við fasta til að búa til hnattræn kyrrstæð Mutex, RwLock og Condvar gildi án þess að nota lazy_static pakka.
- Fyrir aðgerðir eins og fn foo (gildi: T, f: impl Copy) setningafræði eins og „foo::“ er leyfð (32, 3)“, sem gefur skýrt til kynna tegund samheitalyfs.
- Umskipti yfir í að nota NLL (Non-Lexical Lifetimes) tækni til að bera kennsl á vandamál með lántökubreytur hefur verið lokið. NLL tekur mið af vísbendingastigi í framkvæmdarflæðisgrafinu, sem gerir það mögulegt að auka gæði ávísunarinnar fyrir lántökubreytur (lánafgreiðslumaður) og leyfa framkvæmd sumra tegunda af réttum kóða, notkun á sem áður leiddi til villu. Stuðningur við gamla vélbúnaðinn sem notaði lexical-level lifetime binding hefur nú verið algjörlega fjarlægður úr rustc og notkun nýja NLL hefur verið innleidd í gegn.
- Nýr hluti af API hefur verið færður í flokkinn stöðugt, þar með talið aðferðir og útfærslur á eiginleikum hafa verið stöðugar:
- fylki::frá_fn
- Box::into_pin
- BinaryHeap::try_reserve
- BinaryHeap::try_reserve_exact
- OsString::try_reserve
- OsString::try_reserve_exact
- PathBuf::try_reserve
- PathBuf::try_reserve_exact
- Slóð::reyna_er til
- Ref::filter_map
- RefMut::filter_map
- NonNull::<[T]>::len
- ToOwned::clone_into
- Ipv6Addr::to_ipv4_mapped
- unix::io::AsFd
- unix::io::BorrowedFd<'fd>
- unix::io::OwnedFd
- windows::io::AsHandle
- windows::io::BorrowedHandle
Heimild: opennet.ru
