Chilankhulo chothandizira anthu ambiri Rust 1.77, 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:
- Thandizo lowonjezera la zilembo za C-zingwe (c"zolemba"), zomwe zimasungidwa pamtima ndi zilembo zopanda kanthu ndipo zimagwirizanitsidwa ndi mtundu wa "CStr". Zikuyembekezeka kuti kuthandizira kwa C-string kupangitsa kuti zilembo zolembera zikhale zosavuta zomwe zimagwirizana ndi zigawo za zilankhulo zamapulogalamu zomwe zimagwiritsa ntchito zingwe zopanda kanthu, ndikulola kuti macheke ofunikira achitidwe panthawi yophatikiza. const HELLO: &core::ffi::CStr = c"Moni, dziko!";
- M'machitidwe omwe amachitidwa mwachisawawa omwe amalengezedwa pogwiritsa ntchito mawu akuti "async fn", kugwiritsa ntchito kubwereza kumaloledwa, i.e. ntchito zoterezi tsopano zitha kudzitcha okha. async fn fib(n: u32) -> u32 {machesi n {0 | 1 => 1, _ => Bokosi::pini(fib(n-1)).dikirani + Bokosi::pini(fib(n-2)).kudikira }}
- The offset_of! M'malo mwake, ma macro amatha kukhala othandiza pakanthawi komwe muyenera kugwira ntchito pamlingo wa offset popanda mtundu wamtunduwo. Makamaka, offset_of functionality ndiyofunika popanga zigawo zotsika monga madalaivala. gwiritsani ntchito std::mem; #[repr(C)] struct FieldStruct {choyamba: u8, chachiwiri: u16, chachitatu: u8 } assert_eq!(mem::offset_of!(FieldStruct, choyamba), 0); assert_eq!(mem::offset_of!(FieldStruct, second), 2); assert_eq!(mem::offset_of!(FieldStruct, lachitatu), 4);
- Mu kasamalidwe ka phukusi la Cargo, muzotulutsa zotulutsa, kuyeretsa mafayilo kuchokera ku debugging data kumayatsidwa mwachisawawa (strip = "debuginfo"), pokhapokha ngati njira yochotsera vutoli ilumikizidwa momveka bwino mu mbiri ya Cargo, i.e. ngati parameter debug = 0.
- Chosankha cha "-Zthir-unsafeck=on" chimayatsidwa mwachisawawa, kupereka cheke chopanda chitetezo cha THIR (Typed High-Level Intermediate Representation).
- Kuwonjezedwa kwa lint kwa static_mut_refs kuti awonetse chenjezo mukamagwiritsa ntchito maumboni osinthika.
- Kutha kugwiritsa ntchito mtundu wa "Kuchokera <&[T;" kwakhazikitsidwa. N]>" kwa mtundu "Ng'ombe<[T]>". fn foo(data: impl Into >) {/* … */ } fn main() { foo(&[“hello”, “world”]); }
- Wopangayo amapereka kulumikizana kwa mitundu ya 16-byte i128 ndi u128 pamakina a x86.
- Gawo latsopano la API lasunthidwa ku gulu lokhazikika, kuphatikiza njira ndi kukhazikitsidwa kwa machitidwe akhazikika:
- gulu:: aliyense_ref
- gulu::aliyense_mut
- maziko::net
- f32::zozungulira_zogwirizana_ngakhale
- f64::zozungulira_zogwirizana_ngakhale
- mem::kuchotsera_wa!
- chidutswa::choyamba_chidutswa
- chidutswa::choyamba_chunk_mut
- chidutswa::split_first_chunk
- chidutswa::split_first_chunk_mut
- chidutswa::last_chunk
- chidutswa::last_chunk_mut
- chidutswa::split_last_chunk
- chidutswa::split_last_chunk_mut
- chidutswa::chunk_by
- chidutswa::chunk_by_mut
- Womangidwa ::mapu
- Fayilo::create_new
- Mutex::clear_poison
- RwLock::clear_poison
- Gawo lachitatu lothandizira lakhazikitsidwa pa nsanja za aarch64-osadziwika-illumos, hexagon-unknown-none-elf, riscv32imafc-esp-espidf ndi riscv32im-risc0-zkvm-elf. Mulingo wachitatu umakhudzanso chithandizo choyambirira, koma popanda kuyesa kokha, kusindikiza kovomerezeka, kapena kuwona ngati code ingamangidwe.
Source: opennet.ru
