Rust 1.55 Programming Language Version

Yo te pibliye liberasyon langaj pwogramasyon sistèm Rust 1.55, ki te fonde pa pwojè Mozilla, men kounye a devlope anba ejid òganizasyon endepandan ki pa gen pwofi Rust Foundation. Lang la konsantre sou sekirite memwa, bay jesyon memwa otomatik, epi li bay mwayen pou reyalize paralèl travay segondè san yo pa itilize yon pèseptè fatra oswa ègzekutabl (se exécution redwi a inisyalizasyon debaz ak antretyen nan bibliyotèk la estanda).

Jesyon otomatik memwa Rust a elimine erè lè w ap manipile endikasyon ak pwoteje kont pwoblèm ki rive nan manipilasyon memwa ki ba, tankou aksè nan yon rejyon memwa apre li fin libere, dereferans pointeur nil, depase tanpon, elatriye. Pou distribye bibliyotèk, asire asanble ak jere depandans, pwojè a ap devlope manadjè pake kago. Repozitwa crates.io sipòte pou hosting bibliyotèk.

Prensipal inovasyon:

  • Manadjè pake kago a gen kapasite pou rantre kopi erè ak avètisman ki fèt pandan yon konstriksyon. Lè w ap egzekite kòmandman tankou "tès kago" ak "chèk kago --tout-sib" ki lakòz plizyè batiman nan yon pake ak paramèt diferan, kounye a yo montre itilizatè a yon rezime sou ensidan an nan yon pwoblèm repete, olye pou yo montre yo. plizyè avètisman idantik lè w ap bati menm bagay la repete. $ kago +1.55.0 tcheke —all-targets Tcheke foo v0.1.0 avètisman: fonksyon pa janm itilize: ‘foo’ —> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = nòt: '#[warn(dead_code)]' sou avètisman pa default: 'foo' (lib) te pwodwi 1 avètisman avètisman: 'foo' (tès lib) te pwodwi 1 avètisman (1 kopi) Fini dev [unoptimized + debuginfo] sib (s) nan 0.84s
  • Kòd parsing pwen k ap flote nan bibliyotèk estanda a te deplase pou sèvi ak algorithm Eisel-Lemire ki pi rapid ak pi egzak, ki te rezoud kèk pwoblèm ki te deja obsève ak awondi ak analiz nimewo ak yon gwo kantite chif.
  • Kapasite pou presize seri ki pa fèmen nan modèl yo te estabilize (“X..” entèprete kòm yon seri ki kòmanse ak valè X la epi ki fini ak valè maksimòm nan kalite nonb antye relatif): matche x kòm u32 { 0 => println! ("zewo!"), 1.. => println! ("nimewo pozitif!"), }
  • Elaji varyant erè ki kouvri pa std::io::ErrorKind (klasifye erè nan kategori tankou NotFound ak WouldBlock). Anvan sa, erè ki pa anfòm nan kategori ki ekziste yo te tonbe nan kategori ErrorKind::Other, ki te itilize tou pou erè nan kòd twazyèm pati. Kounye a gen yon kategori entèn separe ErrorKind::Uncategorized pou erè ki pa anfòm nan kategori ki egziste deja, epi kategori ErrorKind::Other limite a sa sèlman erè ki pa rive nan bibliyotèk estanda (fonksyon bibliyotèk estanda ki retounen io::Error). pa itilize ankò ErrorKind:: kategori Lòt).
  • Yon nouvo pòsyon nan API a te transfere nan kategori ki estab, ki gen ladan metòd yo ak aplikasyon karakteristik yo:
    • Bound::klone
    • Drenaj::as_str
    • IntoInnerError::into_error
    • IntoInnerError::into_parts
    • PetètUninit::assume_init_mut
    • PetètUninit::assume_init_ref
    • PetètUninit::ekri
    • etalaj::kat
    • ops::ControlFlow
    • x86::_bittest
    • x86::_bittestandcomplement
    • x86::_bittestandreset
    • x86::_bittestandset
    • x86_64::_bittest64
    • x86_64::_bittestandcomplement64
    • x86_64::_bittestandreset64
    • x86_64::_bittestandset64
  • Atribi "const", ki detèmine posiblite pou itilize li nan nenpòt kontèks olye pou yo konstan, yo itilize nan metòd str::from_utf8_unchecked.
  • Yo te aplike twazyèm nivo sipò pou platfòm powerpc64le-unknown-freebsd. Twazyèm nivo a enplike sipò debaz, men san yo pa tès otomatik, pibliye bati ofisyèl, oswa tcheke si kòd la ka bati.

Sous: opennet.ru

Add nouvo kòmantè