közzétett A rendszer programozási nyelvének 1.47-es kiadása Rozsda, amelyet a Mozilla projekt alapított. A nyelv a memória biztonságára összpontosít, automatikus memóriakezelést biztosít, és lehetőséget biztosít a magas szintű párhuzamosság elérésére használat nélkül szemetes и futásidejű (a futásidő a szabványos könyvtár alapvető inicializálására és karbantartására vonatkozik).
A Rust automatikus memóriakezelése megóvja a fejlesztőt a mutatók manipulálása során előforduló hibáktól, és védelmet nyújt az alacsony szintű memóriakezelés miatt felmerülő problémák ellen, mint például a memóriaterület elérése annak felszabadítása után, a nulla mutatók hivatkozásának megszüntetése, a puffertúllépések stb. A programkönyvtárak terjesztéséhez, az összeállítás biztosításához és a függőségek kezeléséhez a projekt csomagkezelőt fejleszt ki Szállítmány. Egy tárhely támogatott a könyvtárak fogadására ládák.io.
Bevezetett támogatás típusokhoz tömbök bármely méret. Korábban, mivel nem lehetett általános függvényeket definiálni az összes egész értékhez, a szabványos könyvtár csak a legfeljebb 32 elem méretű tömbökhöz biztosított beépített tulajdonságtámogatást (az egyes méretek jellemzőit statikusan határozták meg). A konstans generikusok („const generics”) funkcionalitásának létrehozásának köszönhetően lehetővé vált bármilyen tömbmérethez általános függvények definiálása, de ezek még nem szerepelnek a stabil nyelvi jellemzők között, bár a fordítóban implementálva vannak, és Most magában foglal a szabványos könyvtárban bármilyen méretű tömbtulajdonsághoz.
Például a következő konstrukció a Rust 1.47-ben egy tömb tartalmát fogja kiírni, bár korábban ez hibát eredményezett volna:
fn main() {
legyen xs = [0; 34];
println!("{:?}", xs);
}
Rövidebb nyomok (backtrace) kimenete, kimenet vészhelyzetekben. Azok az elemek, amelyek a legtöbb helyzetben nem érdekesek, de összezavarják a kimenetet, és elvonják a figyelmet a probléma elsődleges okairól, ki vannak zárva a nyomozásból. Teljes nyomkövetés visszaadásához használhatja a "RUST_BACKTRACE=full" környezeti változót. Például a kódhoz
fn main() {
pánik!();
}
Korábban a nyomkövetést 23 fokozatban adták ki, de most ez lesz a redukálva
3 lépés, amely lehetővé teszi, hogy azonnal megértse a lényeget:
a 'main' szál pánikba esett az 'explicit pánik' miatt, src/main.rs:2:5
verem visszakövetése:
0: std::pánik::begin_panic
itt: /rustc/d…d75a/library/std/src/panicking.rs:497
1: játszótér::fő
a ./src/main.rs:2 címen
2: core::ops::function::FnOnce::call_once
itt: /rustc/d…d75a/library/core/src/ops/function.rs:227
A rustc fordító frissítve lett a segítségével LLVM 11 (Rozsda felhasznál LLVM háttérként a számára kódgenerálás). Ugyanakkor megmarad a régebbi LLVM-ekkel való építés lehetősége a 8-as verzióig, de alapértelmezés szerint (a rust-lang/llvm-projekt) jelenleg az LLVM 11-et használja. Az LLVM 11 megjelenése a következő napokban várható.
A Windows platformon a rustc fordító támogatja a vezérlési folyamat integritásának ellenőrzését (Control Flow Guard), amely a „-C control-flow-guard” jelzővel aktiválható. Más platformokon ezt a jelzőt egyelőre figyelmen kívül hagyják.
Az API új része átkerült a stabil kategóriába, beleértve a stabilizáltat is
Ident::new_raw,
Tartomány::üres,
RangeInclusive::is_empty,
Eredmény::as_deref,
Eredmény::as_deref_mut,
Vec::szivárgás,
pointer::offset_from,
f32::TAU és
f64::TAU.
A „const” attribútum, amely meghatározza annak lehetőségét, hogy konstansok helyett tetszőleges környezetben használható legyen, a metódusokban használatos:
új minden nullától eltérő egész számra;
checked_add, checked_sub, checked_mul, checked_neg, checked_shl, checked_shr, saturating_add, saturating_sub és saturating_mul minden egész számra;