Itusilẹ ti ede siseto gbogboogbo-idi Rust 1.67, ti o da nipasẹ iṣẹ akanṣe Mozilla, ṣugbọn ni bayi ni idagbasoke labẹ awọn atilẹyin ti ominira ti kii ṣe èrè agbari Rust Foundation, ti ṣe atẹjade. Ede naa dojukọ aabo iranti ati pese awọn ọna lati ṣaṣeyọri isọdọkan iṣẹ giga lakoko ti o yago fun lilo ikojọpọ idoti ati akoko asiko (akoko asiko ti dinku si ipilẹṣẹ ipilẹ ati itọju ile-ikawe boṣewa).
Awọn ọna mimu iranti Rust ṣe igbala awọn olupilẹṣẹ lati awọn aṣiṣe nigbati o ba ni ifọwọyi awọn itọka ati daabobo lodi si awọn iṣoro ti o dide nitori mimu iranti ipele kekere, gẹgẹbi iraye si agbegbe iranti lẹhin ti o ti ni ominira, piparẹ awọn itọka asan, awọn ifasilẹ ifipamọ, ati bẹbẹ lọ. Lati kaakiri awọn ile-ikawe, pese awọn kikọ ati ṣakoso awọn igbẹkẹle, iṣẹ akanṣe n ṣe idagbasoke oluṣakoso package Ẹru. Ibi ipamọ crates.io jẹ atilẹyin fun awọn ile-ikawe alejo gbigba.
Ailewu iranti ti pese ni ipata ni akoko iṣakojọ nipasẹ ṣiṣe ayẹwo itọkasi, ṣiṣe itọju ohun-ini ohun, titọju awọn igbesi aye ohun (awọn iwọn), ati iṣiro deede wiwọle iranti lakoko ṣiṣe koodu. Ipata tun pese aabo lodi si ṣiṣan odidi odidi, nilo ipilẹṣẹ dandan ti awọn iye oniyipada ṣaaju lilo, mu awọn aṣiṣe dara julọ ni ile-ikawe boṣewa, lo imọran ti awọn itọkasi ailagbara ati awọn oniyipada nipasẹ aiyipada, nfunni titẹ aimi to lagbara lati dinku awọn aṣiṣe ọgbọn.
Awọn imotuntun akọkọ:
- Fun awọn iṣẹ async pẹlu Ọjọ iwaju :: Ijade, o ṣee ṣe lati pato awọn alaye "#[must_use]" ti o pẹlu ikilọ kan ti o ba kọju iye ipadabọ, eyiti o ṣe iranlọwọ idanimọ awọn aṣiṣe ti o ṣẹlẹ nipasẹ arosinu pe iṣẹ naa yoo yi awọn iye pada dipo. ju pada a titun iye. #[must_use] async fn bar () -> u32 { 0 } async fn olupe () {bar ().duro; } ìkìlọ: àbájáde àìlò ti ọjọ iwaju ti a da pada nipasẹ `bar` ti o gbọdọ lo —> src/lib.rs:5:5 | 5 | igi () duro; | ^^^^^^^^^^^ | = akiyesi: `#[kilo(ailosed_must_use)]` ni aiyipada
- Awọn imuse ti FIFO queues std :: amuṣiṣẹpọ :: mpsc (olumulo olupilẹṣẹ-ọpọlọpọ) ti ni imudojuiwọn, eyiti a ti yipada si lilo module ikanni crossbeam lakoko mimu API ti tẹlẹ. Awọn imuse tuntun jẹ iyatọ nipasẹ ipinnu nọmba awọn iṣoro, iṣẹ ti o ga julọ ati itọju koodu irọrun.
- Apa tuntun ti API ni a ti gbe si ẹka ti iduroṣinṣin, pẹlu awọn ọna ati awọn imuse ti awọn abuda ti jẹ imuduro:
- {odidi} :: checked_ilog
- {odidi} :: checked_ilog2
- {odidi} :: checked_ilog10
- {odidi} :: ilog
- {odidi} :: ilog2
- {odidi} :: ilog10
- NonZeroU * :: ilog2
- NonZeroU * :: ilog10
- NonZero * :: BITS
- Ẹya “const”, eyiti o pinnu iṣeeṣe ti lilo ni eyikeyi ipo dipo awọn iduro, ni a lo ninu awọn iṣẹ:
- char :: lati_u32
- char :: lati oni-nọmba
- char :: to_nọmba
- mojuto :: char :: lati_u32
- mojuto :: char :: from_digit
- A ti ṣe imuse ipele kẹta ti atilẹyin fun lilo Rust ni ekuro Linux (linuxkernel), ati fun Sony PlayStation 1 (mipsel-sony-psx), PowerPC pẹlu AIX (powerpc64-ibm-aix), QNX Neutrino RTOS ( aarch64-unknown-to-) awọn iru ẹrọ qnx710, x86_64-pc-to-qnx710). Ipele kẹta jẹ atilẹyin ipilẹ, ṣugbọn laisi idanwo adaṣe, titẹjade ti awọn ile-iṣẹ osise, ati ijẹrisi ti iṣelọpọ koodu.
Ni afikun, a le ṣe akiyesi atẹjade nipasẹ ARM ti awọn abulẹ ti o gba laaye lilo ede Rust lati ṣe agbekalẹ awakọ ati awọn modulu ekuro Linux ti o pejọ fun awọn eto ti o da lori faaji AArch64.
orisun: opennet.ru
