Die algemene programmeertaal Rust 1.69, wat deur die Mozilla-projek gestig is, maar nou ontwikkel is onder die beskerming van die onafhanklike nie-winsgewende organisasie Rust Foundation, is vrygestel. Die taal fokus op geheueveiligheid en bied die middele om hoΓ« werkparallelisme te bereik terwyl die gebruik van 'n vullisverwyderaar en looptyd vermy word (looptyd word verminder tot basiese inisialisering en instandhouding van die standaardbiblioteek).
Rust se geheue hantering metodes red die ontwikkelaar van foute wanneer wysers gemanipuleer word en beskerm teen probleme wat ontstaan ββas gevolg van laevlak geheue manipulasie, soos toegang tot 'n geheue area nadat dit vrygestel is, herkenning van nulwysers, buffer oorskryding, ens. Om biblioteke te versprei, bouwerk te verskaf en afhanklikhede te bestuur, ontwikkel die projek die Cargo-pakketbestuurder. Die crates.io-bewaarplek word ondersteun vir die aanbieding van biblioteke.
Geheueveiligheid word tydens samestellingstyd in Rust verskaf deur verwysingskontrolering, tred te hou met objekeienaarskap, tred te hou met objekleeftye (bestekke), en die korrektheid van geheuetoegang tydens kode-uitvoering te assesseer. Roes bied ook beskerming teen heelgetal oorvloei, vereis verpligte inisialisering van veranderlike waardes voor gebruik, hanteer foute beter in die standaard biblioteek, pas die konsep van onveranderlike verwysings en veranderlikes by verstek toe, bied sterk statiese tik om logiese foute te minimaliseer.
Belangrikste innovasies:
- Die Cargo-pakketbestuurder implementeer die opsporing van waarskuwings wat outomaties opgelos kan word, en die uitvoer van toepaslike aanbevelings vir die uitvoer van "cargo fix" of "cargo clippy -fix". waarskuwing: ongebruikte invoer: 'std::hash::Hash' β> src/main.rs:1:5 | 1 | gebruik std::hash::Hash; | ^^^^^^^^^^^^^^^^ | = nota: '#[waarsku(unused_imports)]' aan by verstek waarskuwing: 'foo' (bin "foo") het 1 waarskuwing gegenereer (loop 'cargo fix βbin "foo"' om 1 voorstel toe te pas)
- Cargo het 'n aanbevelingsuitset bygevoeg vir die gebruik van die "cargo add"-opdrag wanneer jy probeer om 'n biblioteek met die "cargo install"-opdrag te installeer.
- Om die samestellingstyd te verminder, is die insluiting van ontfoutingsinligting in bouskripte by verstek gestop. As die bouskripte suksesvol loop, sal die verandering nie enige sigbare verskille tot gevolg hΓͺ nie, maar as mislukkings voorkom, sal die terugspoorstorting minder inligting bevat. Om die ou gedrag terug te keer na Cargo.toml moet jy byvoeg: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
- 'n Nuwe gedeelte van die API is na die kategorie stal geskuif, insluitend die metodes en implementering van eienskappe is gestabiliseer:
- CStr::from_bytes_until_nul
- kern::ffi::FromBytesUntilNulError
- Die "const"-kenmerk, wat die moontlikheid bepaal om dit in enige konteks in plaas van konstantes te gebruik, word in funksies gebruik:
- SocketAddr::nuut
- SocketAddr::ip
- SocketAddr::poort
- SocketAddr::is_ipv4
- SocketAddr::is_ipv6
- SocketAddrV4::nuut
- SocketAddrV4::ip
- SocketAddrV4::poort
- SocketAddrV6::nuut
- SocketAddrV6::ip
- SocketAddrV6::poort
- SocketAddrV6::flowinfo
- SocketAddrV6::scope_id
- Bygevoeg die vermoΓ« om ware en vals vlae in samesteller argumente te gebruik.
Bron: opennet.ru
