Հրապարակվել է Rust 1.69 ընդհանուր նշանակության ծրագրավորման լեզվի թողարկումը, որը հիմնադրվել է Mozilla նախագծի կողմից, սակայն այժմ մշակվել է Rust Foundation անկախ ոչ առևտրային կազմակերպության հովանու ներքո: Լեզուն կենտրոնանում է հիշողության անվտանգության վրա և ապահովում է աշխատանքի բարձր զուգահեռականության հասնելու միջոցներ՝ միաժամանակ խուսափելով աղբահանող սարքից և գործարկման ժամանակից (աշխատանքի ժամանակը կրճատվում է մինչև ստանդարտ գրադարանի հիմնական սկզբնավորումը և պահպանումը):
Rust-ի հիշողության մշակման մեթոդները ծրագրավորողին փրկում են ցուցիչները մանիպուլյացիայի ժամանակ սխալներից և պաշտպանում են խնդիրներից, որոնք առաջանում են ցածր մակարդակի հիշողության հետ աշխատելու պատճառով, ինչպիսիք են հիշողության տարածք մուտք գործելը այն ազատվելուց հետո, չվերաբերվող ցուցիչները, բուֆերի գերակատարումները և այլն: Գրադարաններ բաշխելու, կառուցումներ տրամադրելու և կախվածությունները կառավարելու համար նախագիծը մշակում է Cargo փաթեթի կառավարիչը: Crates.io պահոցն աջակցվում է գրադարանների հոսթինգի համար:
Հիշողության անվտանգությունն ապահովվում է Rust-ում կոմպիլյացիայի ժամանակ՝ հղումների ստուգման, օբյեկտի սեփականության մասին հաշվառման, օբյեկտների կյանքի ժամկետների (շրջանակների) հետևելու և կոդի կատարման ընթացքում հիշողության հասանելիության ճշգրտության գնահատման միջոցով: Rust-ը նաև ապահովում է պաշտպանություն ամբողջ թվերի արտահոսքից, պահանջում է փոփոխական արժեքների պարտադիր սկզբնավորում նախքան օգտագործումը, ստանդարտ գրադարանում ավելի լավ է լուծում սխալները, լռելյայն կիրառում է անփոփոխ հղումների և փոփոխականների հայեցակարգը, առաջարկում է ուժեղ ստատիկ մուտքագրում՝ տրամաբանական սխալները նվազագույնի հասցնելու համար:
Հիմնական նորամուծությունները.
- Բեռնափոխադրումների փաթեթի կառավարիչը իրականացնում է նախազգուշացումների հայտնաբերում, որոնք կարող են ինքնաբերաբար լուծվել և համապատասխան առաջարկություններ գործարկելու «cargo fix» կամ «cargo clippy --fix»: զգուշացում՝ չօգտագործված ներմուծում՝ 'std::hash::Hash' --> src/main.rs:1:5 | 1 | օգտագործել std::hash::hash; | ^^^^^^^^^^^^^^^^ | = նշում․ '#[warn(unused_imports)]' լռելյայն նախազգուշացում. 'foo' (bin "foo") ստեղծեց 1 զգուշացում (գործարկեք 'cargo fix --bin "foo"' 1 առաջարկ կիրառելու համար)
- Ավելացվեց Cargo՝ «cargo add» հրամանն օգտագործելու առաջարկություն ցուցադրելու համար, երբ փորձում եք գրադարան տեղադրել «cargo install» հրամանով:
- Կոմպիլյացիայի ժամանակը նվազեցնելու համար կառուցման սկրիպտներում տեղեկատվության վրիպազերծումը լռելյայն անջատված է: Եթե կառուցման սկրիպտները հաջողությամբ աշխատեն, փոփոխությունը տեսանելի տարբերություն չի տա, բայց եթե այն ձախողվի, հետընթացի աղբանոցը ավելի քիչ տեղեկատվություն կպարունակի: Cargo.toml-ին հին վարքագիծը վերադարձնելու համար ավելացրեք՝ [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
- API-ի նոր մասը տեղափոխվել է կայուն կատեգորիա, ներառյալ մեթոդները և հատկությունների իրականացումը կայունացվել են.
- CStr::from_bytes_until_nul
- հիմնական::ffi::FromBytesUntilNulError
- «const» հատկանիշը, որը որոշում է այն ցանկացած համատեքստում օգտագործելու հնարավորությունը հաստատունների փոխարեն, օգտագործվում է գործառույթներում.
- SocketAddr::նոր
- SocketAddr::ip
- SocketAddr::port
- SocketAddr::is_ipv4
- SocketAddr::is_ipv6
- SocketAddrV4::նոր
- SocketAddrV4::ip
- SocketAddrV4::port
- SocketAddrV6::նոր
- SocketAddrV6::ip
- SocketAddrV6::port
- SocketAddrV6::flowinfo
- SocketAddrV6::scope_id
- Ավելացվել է կոմպիլյատորների արգումենտներում ճշմարիտ և կեղծ դրոշներ օգտագործելու հնարավորություն:
Source: opennet.ru