Ukukhutshwa kolwimi lwenkqubo ye-Rust 1.63, eyasekwa yiprojekthi ye-Mozilla, kodwa ngoku iphuhliswe phantsi kombutho ozimeleyo ongenzi nzuzo i-Rust Foundation, ipapashiwe. Ulwimi lugxininise ekukhuselweni kwememori kwaye lubonelela ngeendlela zokufikelela kwi-parallelism ephezulu yemisebenzi ngelixa ugwema ukusetyenziswa komqokeleli wenkunkuma kunye nexesha lokuqhuba (ixesha lokuqhuba liyancitshiswa ekuqaliseni okusisiseko kunye nokugcinwa kwelayibrari esemgangathweni).
Iindlela zokuphatha imemori ye-Rust zigcina umphuhlisi kwiimpazamo xa ulawula izikhombisi kwaye ukhusele kwiingxaki ezivela ngenxa yokuphathwa kwememori ekwinqanaba elisezantsi, njengokufikelela kwindawo yememori emva kokuba ikhululiwe, ukususa ireferensi yezalathisi ezingenanto, ukugqithiswa kwe-buffer, njl. Ukusasaza amathala eencwadi, ukubonelela ngokwakha kunye nokulawula ukuxhomekeka, iprojekthi iphuhlisa umphathi wephakheji yeCargo. Uvimba we-crates.io uyaxhaswa kukusingatha amathala eencwadi.
Ukhuseleko lwenkumbulo lubonelelwa kwiRust ngexesha lokudibanisa ngokujongwa kwereferensi, ukugcina umkhondo wobunini bento, ukugcina umkhondo wobomi bento (i-scopes), kunye nokuvavanya ukuchaneka kokufikelela kwimemori ngexesha lokwenziwa kwekhowudi. Umhlwa ukwabonelela ngokhuseleko ngokuchasene nokuphuphuma kwenani elipheleleyo, kufuna ukuqaliswa okunyanzelekileyo kwamaxabiso aguquguqukayo ngaphambi kokusetyenziswa, iphatha iimpazamo ngcono kwithala leencwadi elisemgangathweni, isebenzisa ingqikelelo yeembekiselo ezingenakuguquguquka kunye nezinto eziguquguqukayo ngokungagqibekanga, ibonelela ngochwethezo olomeleleyo ukuze kuncitshiswe iimpazamo ezinengqiqo.
Iinguqulelo eziphambili:
- Yongeza i std :: thread ::scope API, ekuvumela ukuba wenze imisonto yescoped. Ngokungafaniyo nemisonto ekhoyo ngaphambili, entsha std :: thread ::scope API ivumela ukugqithiswa kokuboleka idatha engatshintshiyo, ngelixa imisonto eyenziwe kusetyenziswa i-classic std :: thread :: spawn API bekufuneka ukuba ibe yeyakho yonke iingxoxo ezigqithisiweyo kwaye ayikwazanga ukufumana. ezahlukeneyo ezibolekiweyo. I-std::thread::scope API iqinisekisa ukuba nayiphi na imisonto evelisiweyo iyayekiswa phambi kokuba idatha ibuyiswe, ibonelela ngokhuseleko olwaneleyo kwindlela yokuboleka.
- Iindidi ezitsha zokusonga zeenkcazo zeefayile ziye zandululwa - iBorrowedFd kunye ne-OwnedFd, ebonelela ngokuboleka kunye nobunini. Iintlobo ziphawulwe ngo-"#[repr(transparent)]", ezivumela ukuba zisetyenziswe ngokuthe ngqo kwizibophelelo ze-C zangaphandle ngendlela yolwazi lobunini.
- Ubonelele ngokukwazi ukubiza i-Condvar::entsha, i-Mutex::intsha kunye ne-RwLock::entsha kumxholo wezinto eziguquguqukayo ukudala i-static Mutex yehlabathi, i-RwLock kunye ne-Condvar amaxabiso ngaphandle kokusebenzisa i-lazy_static packages.
- Ngemisebenzi efana nefn foo (ixabiso: T, f: impl Khuphela) isivakalisi esifana ne "foo::" sivumelekile (32, 3)”, ebonisa ngokucacileyo uhlobo lwegeneric.
- Ukutshintshela ekusebenziseni ubuchule be-NLL (Non-Lexical Lifetimes) ukuchonga iingxaki ngezinto eziguquguqukayo zokuboleka kugqityiwe. I-NLL ithathela ingqalelo kwinqanaba leesalathisi kwigrafu yokuqhuba, eyenza kube lula ukunyusa umgangatho wetshekhi yezinto eziguquguqukayo zokuboleka (umtsheki wokuboleka) kwaye uvumele ukuphunyezwa kwezinye iindidi zekhowudi echanekileyo, ukusetyenziswa ekhokelele kwimpazamo ngaphambili. Inkxaso yendlela endala eyayisebenzisa i-lexical-level lifetime binding iye yasuswa ngokupheleleyo kwi-rustc, kwaye ukusetyenziswa kwe-NLL entsha kuye kwaphunyezwa kulo lonke.
- Inxalenye entsha ye-API iye yasiwa kudidi oluzinzileyo, kubandakanywa iindlela kunye nokuphunyezwa kweempawu ziye zazinziswa:
- uluhlu::ukusuka_fn
- Ibhokisi::kwi-pin
- BinaryHeap::zama_gcina
- I-BinaryHeap::zama_gcina_kanye
- OsString::zama_gcina
- OsString::zama_gcina_kanye
- PathBuf::zama_gcina
- PathBuf::zama_gcina_kanye
- Indlela::zama_ikhona
- Ref::imephu yokucoca
- RefMut ::imephu yokucoca
- Nonnull::<[T]>::len
- Onomnikazi ::clone_ngena
- Ipv6Addr::to_ipv4_mapped
- unix::io::AsFd
- unix::io::BorrowedFd<'fd>
- unix::io::OwnedFd
- windows::io::AsHandle
- windows::io::BorrowedHandle
umthombo: opennet.ru
