Ġie ppubblikat ir-rilaxx tal-lingwa ta 'programmar tas-sistema Rust 1.55, imwaqqfa mill-proġett Mozilla, iżda issa żviluppat taħt l-awspiċi tal-organizzazzjoni indipendenti mingħajr skop ta' qligħ Rust Foundation. Il-lingwa tiffoka fuq is-sigurtà tal-memorja, tipprovdi ġestjoni awtomatika tal-memorja, u tipprovdi l-mezzi biex tikseb paralleliżmu għoli tal-kompitu mingħajr ma tuża kollettur taż-żibel jew runtime (runtime huwa mnaqqas għal inizjalizzazzjoni bażika u manutenzjoni tal-librerija standard).
Il-ġestjoni awtomatika tal-memorja ta 'Rut telimina l-iżbalji meta timmanipula pointers u tipproteġi kontra problemi li jirriżultaw minn manipulazzjoni tal-memorja ta' livell baxx, bħall-aċċess għal reġjun tal-memorja wara li jkun ġie meħlus, dereferences null pointer, buffer overruns, eċċ. Biex iqassam il-libreriji, jiżgura l-assemblaġġ u jimmaniġġja d-dipendenzi, il-proġett qed jiżviluppa l-maniġer tal-pakkett tat-Tagħbija. Ir-repożitorju crates.io huwa appoġġjat għall-hosting tal-libreriji.
Innovazzjonijiet ewlenin:
- Il-maniġer tal-pakkett tal-Merkanzija għandu l-abbiltà li jingħaqad żbalji duplikati u twissijiet li jseħħu waqt bini. Meta tesegwixxi kmandi bħal "test tal-merkanzija" u "kontroll tal-merkanzija --all-targets" li jirriżultaw f'diversi builds ta' pakkett b'parametri differenti, l-utent issa jintwera sommarju tal-okkorrenza ta' problema ripetuta, minflok ma jintwera. twissijiet identiċi multipli meta tibni l-istess ħaġa ripetutament. $ cargo +1.55.0 check —all-targets Checking foo v0.1.0 twissija: il-funzjoni qatt ma tintuża: 'foo' —> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = nota: '#[warn(dead_code)]' fuq twissija awtomatika: 'foo' (lib) iġġenerat twissija 1: 'foo' (test lib) iġġenerat twissija 1 (duplikat 1) Dev lest [mhux ottimizzat + debuginfo] mira (s) f'0.84s
- Il-kodiċi floating point parsing fil-librerija standard ġie mċaqlaq biex juża l-algoritmu Eisel-Lemire aktar veloċi u preċiż, li solviet xi problemi osservati qabel bl-arrotondament u l-parsing ta 'numri b'numri kbar ħafna ta' ċifri.
- Il-kapaċità li jiġu speċifikati firxiet mhux magħluqa f'mudelli ġiet stabbilizzata (“X..” hija interpretata bħala firxa li tibda bil-valur X u tispiċċa bil-valur massimu tat-tip ta' numru sħiħ): match x as u32 { 0 => println! (“żero!”), 1.. => println!(”numru pożittiv!”), }
- Varjanti ta' żball estiżi koperti minn std::io::ErrorKind (jikklassifika l-iżbalji f'kategoriji bħal NotFound u WouldBlock). Preċedentement, żbalji li ma kinux jidħlu f'kategoriji eżistenti waqgħu fil-kategorija ErrorKind::Other, li kienet użata wkoll għal żbalji fil-kodiċi ta 'partijiet terzi. Issa hemm kategorija interna separata ErrorKind::Uncategorized għal żbalji li ma jidħlux fil-kategoriji eżistenti, u l-ErrorKind::Other kategorija hija limitata għal żbalji li ma jseħħux fil-librerija standard (funzjonijiet tal-librerija standard li jirritorna io::Error m'għadhiex tuża l-ErrorKind:: kategorija Oħrajn).
- Porzjon ġdid tal-API ġie mċaqlaq għall-kategorija ta 'stabbli, inklużi l-metodi u l-implimentazzjonijiet tal-karatteristiċi ġew stabbilizzati:
- Marbut::klonat
- Ixxotta::as_str
- IntoInnerError::into_error
- IntoInnerError::into_parts
- ForsiUninit::assume_init_mut
- ForsiUninit::assume_init_ref
- ForsiUninit::tikteb
- array::mappa
- ops::ControlFlow
- x86::_bittest
- x86::_bittestandcomplement
- x86::_bittestandreset
- x86::_bittestandset
- x86_64::_bittest64
- x86_64::_bittestandcomplement64
- x86_64::_bittestandreset64
- x86_64::_bittestandset64
- L-attribut "const", li jiddetermina l-possibbiltà li jintuża fi kwalunkwe kuntest minflok kostanti, jintuża fil-metodu str::from_utf8_unchecked.
- It-tielet livell ta 'appoġġ ġie implimentat għall-pjattaforma powerpc64le-unknown-freebsd. It-tielet livell jinvolvi appoġġ bażiku, iżda mingħajr ittestjar awtomatizzat, pubblikazzjoni ta 'bini uffiċjali, jew verifika jekk il-kodiċi jistax jinbena.
Sors: opennet.ru