Chilankhulo chothandizira anthu ambiri Rust 1.63, chomwe chinakhazikitsidwa ndi polojekiti ya Mozilla koma tsopano chapangidwa mothandizidwa ndi bungwe lodziyimira pawokha lopanda phindu la Rust Foundation, chatulutsidwa. Chilankhulochi chimayang'ana kwambiri pachitetezo cha kukumbukira ndipo chimapereka njira zopezera kufananiza kwakukulu kwa ntchito ndikupewa kugwiritsa ntchito chotolera zinyalala ndi nthawi yothamanga (nthawi yothamanga imachepetsedwa kuti ikhale yoyambira ndikukonza laibulale yokhazikika).
Njira zogwiritsira ntchito kukumbukira za Rust zimapulumutsa wopanga ku zolakwika pamene akuwongolera zolozera ndikuteteza ku zovuta zomwe zimadza chifukwa cha kukumbukira kwapang'onopang'ono, monga kupeza malo okumbukira atamasulidwa, kuchotsa zolozera zopanda pake, ma buffer overruns, etc. Kugawira malaibulale, kupereka zomanga ndi kusamalira zodalira, pulojekitiyi imapanga woyang'anira phukusi la Cargo. Malo osungiramo crates.io amathandizidwa kuti azisunga malaibulale.
Kutetezedwa kwa Memory kumaperekedwa mu Rust panthawi yophatikiza kudzera pakuwunika, kuyang'anira umwini wa chinthu, kuyang'anira nthawi ya moyo wa chinthu (ma scopes), ndikuwunika kulondola kwa kukumbukira kukumbukira panthawi yopanga ma code. Dzimbiri limaperekanso chitetezo ku kusefukira kwazinthu zonse, kumafuna kukhazikitsidwa kovomerezeka kwa zinthu zosinthika musanagwiritse ntchito, kuwongolera zolakwika bwino mulaibulale yokhazikika, kumagwiritsa ntchito lingaliro la maumboni osasinthika ndi zosintha mwachisawawa, kumapereka zilembo zolimba kuti muchepetse zolakwika zomveka.
Zatsopano zazikulu:
- Onjezani std::thread::scope API, yomwe imakulolani kuti mupange ulusi wozungulira. Mosiyana ndi ulusi womwe udalipo kale, std::thread::scope API imalola kubwereka kosakhazikika, pomwe ulusi wopangidwa pogwiritsa ntchito std::thread::spawn API umayenera kukhala ndi mikangano yonse yomwe idadutsa ndipo sakanatha kulandira. zosinthika zobwereka. The std::thread::scope API imatsimikizira kuti ulusi uliwonse wotulutsidwa umathetsedwa deta isanabwezedwe, kupereka chitetezo chokwanira pamakina obwereka.
- Mitundu yatsopano ya mapepala ofotokozera mafayilo yaperekedwa - BorrowedFd ndi OwnedFd, yomwe imapereka kubwereka ndi umwini. Mitundu imakhala ndi "#[repr(transparent)]", kuwalola kuti agwiritsidwe ntchito mwachindunji muzomangiriza zakunja za C mozindikira umwini.
- Zinapereka mwayi woyitanitsa Condvar::watsopano, Mutex::watsopano ndi RwLock::zatsopano potengera zosinthika kuti apange mayendedwe amtundu wa Mutex, RwLock ndi Condvar popanda kugwiritsa ntchito phukusi lazy_static.
- Kwa ntchito ngati fn foo (mtengo: T, f: impl Copy) mawu ngati "foo::" amaloledwa (32, 3)”, kusonyeza momveka bwino mtundu wa generic.
- Kusintha kogwiritsa ntchito njira ya NLL (Non-Lexical Lifetimes) kuti muzindikire zovuta zamitundu yobwereka kwatha. NLL imaganizira pamlingo wa zolozera pazithunzi zoyendetsera ntchito, zomwe zimapangitsa kuti ziwonjezeke kuchuluka kwa cheke pazosintha zobwereka (wobwereketsa) ndikulola kuchitidwa kwa mitundu ina ya code yolondola, kugwiritsa ntchito zomwe poyamba zinayambitsa zolakwika. Thandizo la makina akale omwe amagwiritsira ntchito lexical-level lifetime binding tsopano achotsedwa kwathunthu ku rustc, ndipo kugwiritsa ntchito NLL yatsopano kwagwiritsidwa ntchito ponseponse.
- Gawo latsopano la API lasunthidwa ku gulu lokhazikika, kuphatikiza njira ndi kukhazikitsidwa kwa machitidwe akhazikika:
- gulu::kuchokera_fn
- Bokosi::mu_pin
- BinaryHeap::try_reserve
- BinaryHeap::try_reserve_exact
- OsString::try_reserve
- OsString::try_reserve_exact
- PathBuf:: try_reserve
- PathBuf:: try_reserve_exact
- Njira:: try_exists
- Ref::sefa_map
- RefMut::sefa_map
- NonNull::<[T]>::len
- Eni ake::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
