Rust 1.68 Programming Language Version

Yo te pibliye piblikasyon langaj pwogramasyon jeneral Rust 1.68, ki te fonde pa pwojè Mozilla, men kounye a devlope sou ejid òganizasyon endepandan ki pa pou pwofi Rust Foundation. Lang la konsantre sou sekirite memwa epi li bay mwayen pou reyalize gwo paralèl nan ekzekisyon travay, pandan y ap evite itilizasyon yon pèseptè fatra ak tan exÊcute (se redui tan an nan inisyalizasyon debaz ak antretyen nan bibliyotèk la estanda).

Teknik jesyon memwa Rust yo libere pwomotè a soti nan erè manipilasyon konsèy epi pwoteje kont pwoblèm ki rive nan manipilasyon memwa ki ba-nivo, tankou aksè apre-gratis, dereferans pointer nil, depase tanpon, ak lòt bagay. 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.

Sekirite memwa aplike nan Rust nan moman konpile atravè chèk referans, swiv pwopriyetè objè, konsiderasyon pou tout lavi objè (delimitasyon) ak evalyasyon aksè memwa nan tan exÊcution. Rust tou bay pwoteksyon kont debòde nonb antye relatif, mande pou valè varyab yo dwe inisyalize anvan yo itilize, gen pi bon manyen erè nan bibliyotèk estanda a, sèvi ak konsèp nan referans imuiabl ak varyab pa default, epi li ofri fò sezisman estatik pou minimize erè lojik.

Prensipal inovasyon:

  • Manadjè pake kago ak depo crates.io te estabilize sipò pou pwotokòl Sparse, ki defini yon nouvo fason pou travay ak yon endèks ki reflete vèsyon ki disponib nan tout pakè ki egziste nan depo a. Nouvo pwotokòl la pèmèt ou ogmante siyifikativman vitès travay ak crates.io ak rezoud pwoblèm dekale ak plis kwasans nan kantite pakè nan depo a.

    Pou diminye reta ki te koze pa telechaje yon endèks konplè, Sparse olye pou yo jwenn aksè nan endèks la lè l sèvi avèk Git enplike telechaje dirèk sou HTTPS sèlman done endèks ki nesesè yo, ki kouvri depandans yo nan yon pwojè patikilye. Yo itilize yon nouvo sèvis, index.crates.io, pou bay done endèks yo. Pa default, nouvo pwotokòl la te planifye pou itilize nan branch Rust 1.70 la, epi anvan sa, pou pèmèt li, ou ka mete varyab anviwònman "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" oswa ajoute paramèt 'pwotokòl =' nan "[rejis yo. crates-io]" seksyon nan dosye .cargo/config.toml 'sparse'.

  • Te ajoute "pin!" macro, ki pèmèt ou kreye yon estrikti Pin<&mut T> soti nan ekspresyon "T" ak epingle lokal nan eta li (kontrèman ak Box::pin, li pa asiyen memwa sou pil la, men li nan nivo pil la).
  • Yo pwopoze yon gestionnaire erè alokasyon memwa default, ki itilize lè w ap itilize pake estanda alokasyon an. Aplikasyon ki sèlman pèmèt alloc (san std) pral kounye a rele "panik la!" lè alokasyon memwa echwe, ki ka opsyonèlman entèsepte lè l sèvi avèk "#[panic_handler]". Pwogram ki itilize bibliyotèk std yo ap kontinye enprime enfòmasyon sou erè sou stderr ak aksidan.
  • Yon nouvo pòsyon nan API a te transfere nan kategori ki estab, ki gen ladan metòd yo ak aplikasyon karakteristik yo:
    • {core,std}::pin::pin!
    • impl Soti nan pou {f32,f64}
    • std::path::MAIN_SEPARATOR_STR
    • impl DerefMut pou PathBuf
  • Atribi "const", ki detèmine posiblite pou itilize li nan nenpòt kontèks olye pou yo konstan, yo itilize nan VecDeque::new fonksyon an.
  • Pou travay sou platfòm nan Android Kounye a, omwen NDK r25 (API 19) obligatwa, sa vle di vèsyon minimòm ki sipòte a. Android mete ajou nan vèsyon 4.4 (KitKat).
  • Twazyèm nivo sipò yo te aplike pou platfòm Sony PlayStation Vita (armv7-sony-vita-newlibeabihf). 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

Achte hosting serye pou sit ki gen pwoteksyon DDoS, sèvè VPS VDS 🔥 Achte yon hébergement sit entènèt serye ak pwoteksyon DDoS, sèvè VPS VDS | ProHoster