Mae rhyddhau'r iaith raglennu system Rust 1.55, a sefydlwyd gan brosiect Mozilla, ond sydd bellach wedi'i ddatblygu dan nawdd y sefydliad dielw annibynnol Rust Foundation, wedi'i gyhoeddi. Mae'r iaith yn canolbwyntio ar ddiogelwch cof, yn darparu rheolaeth cof awtomatig, ac yn darparu'r modd i gyflawni tasgau cyfochrog uchel heb ddefnyddio casglwr sbwriel neu amser rhedeg (mae amser rhedeg yn cael ei leihau i gychwyn a chynnal a chadw sylfaenol y llyfrgell safonol).
Mae rheolaeth cof awtomatig Rust yn dileu gwallau wrth drin awgrymiadau ac yn amddiffyn rhag problemau sy'n deillio o drin cof lefel isel, megis cyrchu rhanbarth cof ar Γ΄l iddo gael ei ryddhau, dadgyfeiriadau pwyntydd nwl, gor-redeg byffer, ac ati. Er mwyn dosbarthu llyfrgelloedd, sicrhau cydosod a rheoli dibyniaethau, mae'r prosiect yn datblygu rheolwr pecyn Cargo. Cefnogir ystorfa crates.io ar gyfer cynnal llyfrgelloedd.
Prif arloesiadau:
- Mae gan y rheolwr pecyn Cargo y gallu i gyfuno gwallau a rhybuddion dyblyg sy'n digwydd yn ystod adeiladu. Wrth weithredu gorchmynion fel "prawf cargo" a "gwiriad cargo --all-targets" sy'n arwain at adeiladu lluosog o becyn gyda pharamedrau gwahanol, dangosir i'r defnyddiwr nawr grynodeb o ddigwyddiad problem ailadroddus, yn hytrach na chael ei ddangos rhybuddion unfath lluosog wrth adeiladu'r un peth dro ar Γ΄l tro. ffeil. $cargo +1.55.0 siec βall-targets Gwirio foo v0.1.0 warning: nid yw swyddogaeth byth yn cael ei ddefnyddio: 'foo' β> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = nodyn: '#[warn(dead_code)]' ymlaen trwy rybudd rhagosodedig: cynhyrchodd 'foo' (lib) 1 rhybudd rhybudd: cynhyrchodd 'foo' (prawf lib) 1 rhybudd (1 dyblyg) targed dev gorffenedig [heb ei optimeiddio + debuginfo] (s)mewn 0.84s
- Mae'r cod dosrannu pwynt arnawf yn y llyfrgell safonol wedi'i symud i ddefnyddio'r algorithm Eisel-Lemire cyflymach a mwy cywir, sydd wedi datrys rhai problemau a welwyd yn flaenorol gyda thalgrynnu a dosrannu rhifau gyda niferoedd mawr iawn o ddigidau.
- Mae'r gallu i nodi ystodau heb eu cau mewn templedi wedi'i sefydlogi (βX..β yn cael ei ddehongli fel ystod sy'n dechrau gyda'r gwerth X ac yn gorffen gyda gwerth mwyaf y math cyfanrif): cyfateb x fel u32 { 0 => println! (βsero!β), 1.. => println!("rhif positif!"), }
- Amrywiadau gwallau estynedig a gwmpesir gan std :: io :: ErrorKind (yn dosbarthu gwallau i gategorΓ―au fel NotFound a WouldBlock). Yn flaenorol, roedd gwallau nad oeddent yn ffitio i gategorΓ―au presennol yn perthyn i'r categori ErrorKind::Arall, a ddefnyddiwyd hefyd ar gyfer gwallau yn y cod trydydd parti. Bellach mae categori mewnol ar wahΓ’n ErrorKind ::Heb gategoreiddio ar gyfer gwallau nad ydynt yn ffitio i gategorΓ―au presennol, ac mae'r ErrorKind ::Categori arall wedi'i gyfyngu i wallau nad ydynt yn digwydd yn y llyfrgell safonol (swyddogaethau llyfrgell safonol sy'n dychwelyd io::Error bellach yn defnyddio'r ErrorKind :: categori Arall).
- Mae cyfran newydd o'r API wedi'i symud i'r categori stabl, gan gynnwys dulliau a gweithrediad nodweddion wedi'u sefydlogi:
- Wedi'i rwymo::cloned
- Draeniwch::as_str
- IntoInnerError :: into_error
- IntoInnerError::into_parts
- EfallaiUninit::sume_init_mut
- EfallaiUninit::assume_init_ref
- EfallaiUninit::ysgrifennu
- arae::map
- ops::ControlFlow
- x86:: _bittest
- x86:: _bittestandcomplement
- x86:: _bittestandreset
- x86:: _bittestandset
- x86_64 ::_bittest64
- x86_64::_bittestandcompliment64
- x86_64::_bittestandreset64
- x86_64::_bittestandset64
- Defnyddir y briodwedd βconstβ, sy'n pennu'r posibilrwydd o'i ddefnyddio mewn unrhyw gyd-destun yn lle cysonion, yn y dull str::from_utf8_unchecked.
- Mae'r drydedd lefel o gefnogaeth wedi'i rhoi ar waith ar gyfer y llwyfan powerpc64le-unknown-freebsd. Mae'r drydedd lefel yn cynnwys cefnogaeth sylfaenol, ond heb brofi awtomataidd, cyhoeddi adeiladau swyddogol, na gwirio a ellir adeiladu'r cod.
Ffynhonnell: opennet.ru