iliyochapishwa kutolewa kwa lugha ya programu ya mfumo Kutu 1.44, iliyoanzishwa na mradi wa Mozilla. Lugha inazingatia usalama wa kumbukumbu, hutoa usimamizi wa kumbukumbu kiotomatiki, na hutoa zana za kufikia ulinganifu wa juu wa kazi bila kutumia mtoza taka na. Runtime.
Udhibiti wa kumbukumbu otomatiki wa Rust huondoa hitilafu wakati wa kuchezea viashiria na hulinda dhidi ya matatizo yanayotokana na upotoshaji wa kumbukumbu wa kiwango cha chini, kama vile kufikia eneo la kumbukumbu baada ya kuachiliwa, vielekezo visivyofaa vya vielelezo, utiririshaji wa bafa, n.k. Kidhibiti kifurushi kinatayarishwa ili kusambaza maktaba, kuhakikisha kukusanya na kudhibiti utegemezi wa mradi. Cargo, ambayo hukuruhusu kupata maktaba unayohitaji kwa programu hiyo kwa mbofyo mmoja. Hifadhi inaauniwa kwa kupangisha maktaba crates.io.
Katika maandishi ya tangazo la toleo jipya, watengenezaji wa Rust walijihusisha na siasa na walikataa kabisa kuchapisha hakiki kamili ya mabadiliko katika Rust 1.44 kama ishara ya mshikamano na waandamanaji dhidi ya vurugu za polisi, ikionyesha kuwa suala hili ni muhimu zaidi. kuliko kubadilishana maarifa ya kiufundi. Msingi ubunifu:
Kidhibiti cha kifurushi cha Mizigo huunganisha amri ya "mti wa mizigo", ambayo inaonyesha grafu ya utegemezi kama mti. Pia imeongezwa ni chaguo "-duplicates" ("cargo tree -d"), ambayo hukuruhusu kutathmini utegemezi katika matoleo tofauti ya kifurushi kimoja.
Kwa programu zisizofungamana na std ("#![no_std]"), usaidizi wa mbinu za upangaji zisizolingana hutekelezwa kulingana na chaguo la kukokotoa la "async", hatua ya kusawazisha { ... } kizuizi na opereta ".await", ambayo kurahisisha uandishi wa vishikilizi visivyozuia mtiririko wa amri kuu.
Usaidizi wa mpango wa ufafanuzi wa daraja la moduli unaopanuliwa umeongezwa kwa kichanganuzi. Kwa mfano, muundo ufuatao hautatoa hitilafu, licha ya kukosekana kwa moduli "foo/bar/baz.rs" (ujenzi bado ni batili kisemantiki na unaweza kusababisha hitilafu, lakini mabadiliko yanaweza kuonekana na kuchanganuliwa kwa kiwango cha mkusanyiko wa jumla na masharti):
#[cfg(FALSE)]
mod foo {
upau wa mod {
mod baz;
}
}
Kikusanyaji cha rustc kimeongeza uwezo wa kutumia alama ya "-C codegen-units" katika hali ya nyongeza. Utekelezaji wa catch_unwind umefanyiwa kazi upya ili usiwe na athari ya utendakazi ikiwa mchakato wa kufuta umezimwa na hakuna ubaguzi utakaotupwa.
Usaidizi wa kiwango cha 64 umetolewa kwa majukwaa ya aarch64-haijulikani-hakuna, aarch64-haijulikani-none-softfloat, arm86-apple-tvos na x64_XNUMX-apple-tvos. Ngazi ya tatu inahusisha usaidizi wa kimsingi, lakini bila kupima kiotomatiki na uchapishaji wa miundo rasmi.
Sehemu mpya ya API imehamishiwa kwenye aina thabiti, ikiwa ni pamoja na kuimarishwa
PathBuf ::na_uwezo,
PathBuf ::uwezo,
PathBuf ::wazi,
PathBuf ::hifadhi,
PathBuf::hifadhi_sawa,
PathBuf::punguza_ili_kutoshea,
{f32|f64}::to_int_unchecked,
Muundo::align_to,
Muundo:: pedi_ili_kulinganisha,
Mpangilio::safu na
Mpangilio::panua.
Utendaji uliopanuliwa wa maktaba ya kawaida:
Imeongeza kibadala maalum cha "vec![]" ambacho kinaakisiwa moja kwa moja katika Vec::new(), kuruhusu "vec![]" kutumika katika muktadha badala ya viunga.
Utekelezaji (impl) wa sifa umeongezwa ili kubadilisha::Infallible Hash.
OsString hutumia viashiria mahiri DerefMut и IndexMut, inarudisha "&mut OsStr".
proc_macro::LexError inatekeleza fmt::Onyesho na Hitilafu.
Sifa ya "const", ambayo huamua ikiwa inaweza kutumika katika muktadha wowote badala ya viunga, inatumika katika mbinu za from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes na to_ne_bytes kwa aina zote kamili.
Usaidizi umeongezwa wa kuzalisha maktaba tuli katika umbizo la ".a" badala ya ".lib" kwa mifumo ya GNU kwenye Windows.
Mahitaji ya chini ya LLVM yamepandishwa hadi toleo la 8 la LLVM.