ipata 1.34 Siseto ede Tu

waye itusilẹ ede siseto eto Ipata 1.34, ni idagbasoke nipasẹ Mozilla ise agbese. Ede naa dojukọ aabo iranti, pese iṣakoso iranti aifọwọyi, ati pese ọna lati ṣaṣeyọri isọdọmọ iṣẹ-giga laisi lilo agbasọ idoti tabi akoko asiko.

Iṣakoso iranti aifọwọyi ti Rust n ṣe ominira oluṣe idagbasoke lati ifọwọyi ijuboluwole ati aabo lodi si awọn iṣoro ti o dide lati ifọwọyi iranti ipele-kekere, gẹgẹbi awọn iraye si iranti ọfẹ lẹhin, awọn ifisilẹ ijuboluwole asan, awọn agbekọja buffer, ati bii bẹẹ. Oluṣakoso package ti wa ni idagbasoke lati kaakiri awọn ile-ikawe, rii daju apejọ ati ṣakoso awọn igbẹkẹle nipasẹ iṣẹ akanṣe naa. laisanwo, gbigba ọ laaye lati gba awọn ile-ikawe ti o nilo fun eto naa ni titẹ kan. Ibi ipamọ jẹ atilẹyin lati gbalejo awọn ile-ikawe crates.io.

akọkọ awọn imotuntun:

  • Oluṣakoso package Cargo ti ṣafikun awọn irinṣẹ lati ṣiṣẹ pẹlu awọn iforukọsilẹ package miiran ti o le wa ni ibagbepọ pẹlu iforukọsilẹ gbogbo eniyan crates.io. Fun apẹẹrẹ, awọn olupilẹṣẹ ti awọn ohun elo ohun-ini le ni bayi lo iforukọsilẹ ikọkọ tiwọn, eyiti o le ṣee lo nigbati atokọ awọn igbẹkẹle ni Cargo.toml, ati lo awoṣe ikede kan ti o jọra si crates.io fun awọn ọja wọn, ati tọka awọn igbẹkẹle si awọn apoti mejeeji. io ati si iforukọsilẹ tirẹ.

    Lati ṣafikun awọn iforukọsilẹ ita si .cargo/config (ti o wa ni $ HOME tabi ninu iwe ilana package)
    pese apakan "[awọn iforukọsilẹ]", ati lati lo iforukọsilẹ ita, aṣayan "iforukọsilẹ" ti han ninu apejuwe ti igbẹkẹle kọọkan ni Cargo.toml. Lati sopọ si iforukọsilẹ afikun, nìkan gbe ami-ẹri ijẹrisi sinu faili ~/.cargo/ credentials ki o si ṣiṣẹ aṣẹ naa
    "cargo login --registry=mi-registry" ati lati ṣe atẹjade akojọpọ kan -
    "ẹrù tí a tẹ̀ -registry=ìforukọsilẹ mi";

  • Ṣe afikun atilẹyin kikun fun lilo oniṣẹ ẹrọ “?”. ninu awọn idanwo awọn dokita, gbigba ọ laaye lati lo koodu apẹẹrẹ lati inu iwe bi awọn idanwo. Oṣiṣẹ tẹlẹ
    "?" le ṣee lo lati mu awọn aṣiṣe lakoko ṣiṣe idanwo nikan ni iwaju iṣẹ “fn akọkọ ()” tabi ni awọn iṣẹ “#[idanwo]”;

  • Ni aṣa awọn eroja asọye nipa lilo awọn Makiro ilana pese agbara lati lo lainidii tosaaju ti àmi ("#[attr ($ àmi)]", "#[attr[$ àmi]] ati #[attr{$ àmi}]"). Ni iṣaaju, awọn eroja le jẹ pato ni igi kan/fọọmu atunṣe nipa lilo awọn ọrọ gangan okun, fun apẹẹrẹ “#[foo(bar, baz(quux, foo = “bar”))]”, ṣugbọn ni bayi o ṣee ṣe lati lo awọn iṣiro (' #[ibiti o (0. .10)]') ati awọn ikole bi "#[bound (T: MyTrait)]";
  • Awọn iru iduroṣinṣin (iwa) Gbiyanju Lati и Gbiyanju sinu, gbigba awọn iyipada iru pẹlu mimu aṣiṣe. Fun apẹẹrẹ, awọn ọna bii from_be_bytes pẹlu awọn oniruuru odidi lo awọn akojọpọ bi titẹ sii, ṣugbọn data nigbagbogbo wa ni oriṣi Bibẹ, ati iyipada laarin awọn akopọ ati awọn ege jẹ iṣoro lati ṣe pẹlu ọwọ. Pẹlu iranlọwọ ti awọn abuda titun, iṣẹ ti a pato le ṣee ṣe lori fifo nipasẹ ipe si .try_into (), fun apẹẹrẹ, "jẹ ki num = u32 :: from_be_bytes (slice.try_into ()?")". Fun awọn iyipada ti o ṣaṣeyọri nigbagbogbo (fun apẹẹrẹ, lati iru u8 si u32), iru aṣiṣe kan ti ṣafikun Ailoye, gbigba sihin lilo
    GbiyanjuLati fun gbogbo awọn imuse ti o wa tẹlẹ ti "Lati";

  • Iṣe ti diduro CommandExt :: ṣaaju_exec, eyi ti o gba laaye olutọju kan lati ṣiṣẹ ṣaaju ṣiṣe exec, eyi ti a ṣe ni ipo ti ilana ọmọ ti a forked lẹhin ipe orita (). Labẹ iru awọn ipo bẹẹ, diẹ ninu awọn orisun ilana ilana obi, gẹgẹbi awọn apejuwe faili ati awọn agbegbe iranti ti ya aworan, le jẹ ẹda-iwe, eyiti o le ja si ihuwasi aisọye ati iṣẹ ti ko tọ ti awọn ile-ikawe.
    A ṣe iṣeduro lati lo iṣẹ ti ko ni aabo dipo ṣaaju_exec CommandExt :: pre_exec.

  • Iduroṣinṣin ibuwọlu ati awọn oriṣi nomba atomu ti a ko fowo si ni iwọn lati 8 si 64 die-die (fun apẹẹrẹ, AtomicU8), bi daradara bi wole orisi NonZeroI[8|16|32|64|128].
  • Apa tuntun ti API ni a ti gbe lọ si ẹka iduro, pẹlu Eyikeyi:: Iru_id, Aṣiṣe:: Iru_id, ege :: too_by_cached_key, str ::escape_*, str :: Split_ascii_whitespace, Lẹsẹkẹsẹ :: checked_[fikun|sub| ] ati awọn ọna SystemTime ti jẹ imuduro :: checkcked_[fikun|sub]. Iter :: from_fn ati iter :: awọn iṣẹ aṣeyọri ti jẹ imuduro;
  • Fun gbogbo awọn oriṣi odidi, checked_pow, saturating_pow, wrapping_pow ati overflowing_pow awọn ọna ti wa ni imuse;
  • Ṣe afikun agbara lati mu awọn iṣapeye ṣiṣẹ ni ipele sisopo nipa sisọ “-C linker-plugin-lto” aṣayan kọ.

orisun: opennet.ru

Fi ọrọìwòye kun