Rust 1.46 Programming Language Version

pibliye lage 1.46 nan langaj pwogramasyon sistèm lan Rouye, ki te fonde pa pwojè Mozilla. Lang lan konsantre sou sekirite memwa, bay jesyon memwa otomatik, epi li bay zouti pou reyalize gwo paralelis nan travay san yo pa itilize yon pèseptè fatra ak ègzékusion.

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. Yon manadjè pake ap devlope pou distribye bibliyotèk, asire asanble ak jere depandans pa pwojè a. Chaj, ki pèmèt ou jwenn bibliyotèk ki nesesè pou pwogram nan nan yon sèl klike sou. Yon depo sipòte pou òganize bibliyotèk kès.io.

Prensipal la inovasyon:

  • Kapasite fonksyon yo defini lè l sèvi avèk ekspresyon "const fn" yo te elaji, ki ka rele non sèlman kòm fonksyon regilye, men tou itilize nan nenpòt kontèks olye pou yo konstan. Fonksyon sa yo kalkile nan tan konpile, pa nan tan an egzekite, kidonk yo sijè a sèten restriksyon, tankou kapasite nan li sèlman nan konstan.

    Nouvo lage a retire entèdiksyon pou itilize operatè Boolean ("&&" ak "||") nan fonksyon sa yo, epi li pèmèt yo sèvi ak "si", "si kite", "koresponn ak" konstwi,
    "pandan", "pandan y ap kite" ak "bouk", epi tou li bay kapasite pou konvèti an tranch (tranch, etalaj dinamik) lè l sèvi avèk ekspresyon "&[T]". Itilizasyon karakteristik sa yo nan fonksyon "const fn" pèmèt ou deplase kèk operasyon ki gen anpil resous nan etap konpilasyon. Pou egzanp, aplikasyon "const-sha1" fè li posib pou kalkile SHA-1 hashes nan tan konpile, ki mennen nan akselere WinRT obligatwa pou Rust nan prèske 40 fwa.

  • Pou fè mesaj erè yo plis enfòmasyon, sipò pou atribi "#[track_caller]" yo te estabilize, ki itil pou fonksyon tankou unwrap, ki ka lakòz panik si kalite yo itilize mal. Moun k ap okipe panik la pral itilize atribi espesifye a pou enprime kote moun kap rele a nan yon mesaj erè.
  • Atribi "const" la, ki detèmine posibilite pou itilize li nan nenpòt kontèks olye pou yo konstan, yo itilize nan metòd std::mem::forget.
  • Yon nouvo pati nan API a te deplase nan kategori ki estab, ki gen ladan estabilize Option::zip ak vec::Drain::as_slice.
  • Nan pake manadjè Kago te ajoute sipò pou nouvo varyab anviwònman yo mete lè w ap konpile yon pake: CARGO_BIN_NAME (non fichye ègzèkutabl ki lakòz), CARGO_CRATE_NAME (non pake a), CARGO_PKG_LICENSE (lisans ki espesifye nan manifès la), CARGO_PKG_LICENSE_FILE (chemen nan dosye lisans lan).

Sous: opennet.ru

Add nouvo kòmantè