ipata 1.63 Siseto ede Tu

Itusilẹ ti ede siseto gbogboogbo-idi Rust 1.63, ti o da nipasẹ iṣẹ akanṣe Mozilla, ṣugbọn ni bayi ni idagbasoke labẹ awọn atilẹyin ti ominira ti kii ṣe èrè agbari Rust Foundation, ti ṣe atẹjade. Ede naa dojukọ aabo iranti ati pese awọn ọna lati ṣaṣeyọri isọdọkan iṣẹ giga lakoko ti o yago fun lilo ikojọpọ idoti ati akoko asiko (akoko asiko ti dinku si ipilẹṣẹ ipilẹ ati itọju ile-ikawe boṣewa).

Awọn ọna mimu iranti Rust ṣe igbala awọn olupilẹṣẹ lati awọn aṣiṣe nigbati o ba ni ifọwọyi awọn itọka ati daabobo lodi si awọn iṣoro ti o dide nitori mimu iranti ipele kekere, gẹgẹbi iraye si agbegbe iranti lẹhin ti o ti ni ominira, piparẹ awọn itọka asan, awọn ifasilẹ ifipamọ, ati bẹbẹ lọ. Lati kaakiri awọn ile-ikawe, pese awọn kikọ ati ṣakoso awọn igbẹkẹle, iṣẹ akanṣe n ṣe idagbasoke oluṣakoso package Ẹru. Ibi ipamọ crates.io jẹ atilẹyin fun awọn ile-ikawe alejo gbigba.

Ailewu iranti ti pese ni ipata ni akoko iṣakojọ nipasẹ ṣiṣe ayẹwo itọkasi, ṣiṣe itọju ohun-ini ohun, titọju awọn igbesi aye ohun (awọn iwọn), ati iṣiro deede wiwọle iranti lakoko ṣiṣe koodu. Ipata tun pese aabo lodi si ṣiṣan odidi odidi, nilo ipilẹṣẹ dandan ti awọn iye oniyipada ṣaaju lilo, mu awọn aṣiṣe dara julọ ni ile-ikawe boṣewa, lo imọran ti awọn itọkasi ailagbara ati awọn oniyipada nipasẹ aiyipada, nfunni titẹ aimi to lagbara lati dinku awọn aṣiṣe ọgbọn.

Awọn imotuntun akọkọ:

  • Ṣafikun std :: okun :: dopin API, eyiti o fun ọ laaye lati ṣẹda awọn okun ti o so mọ iwọn (Awọn okun Scoped). Ko dabi awọn okun ti o wa tẹlẹ, std tuntun :: okun :: dopin API ngbanilaaye gbigbe ti yawo (yiya) data ti kii ṣe aimi, lakoko ti awọn okun ti a ṣẹda nipa lilo std Ayebaye :: okun :: spawn API ni lati ni gbogbo awọn ariyanjiyan ti o kọja ati ko le gba yiya oniyipada. std :: o tẹle :: scope API ṣe idaniloju pe eyikeyi awọn okun ti o ni itọpa ti pari ṣaaju ki o to da data pada, n pese ipele aabo to dara fun ẹrọ yiya.
  • Awọn iru abuda tuntun fun awọn apejuwe faili ni a dabaa - BorrowedFd ati OwnedFd, eyiti o pese yiya ati nini. Orisi ti wa ni samisi pẹlu "#[repr (sihin)]", eyiti ngbanilaaye wọn lati ṣee lo taara ni ita C-abuda, koko ọrọ si nini.
  • Ti pese agbara lati pe Condvar :: tuntun, Mutex :: tuntun, ati RwLock :: tuntun ni aaye ti awọn iwọn lati ṣẹda Mutex aimi agbaye, RwLock, ati awọn iye Condvar laisi lilo awọn idii bii ọlẹ_static.
  • Fun awọn iṣẹ bii fn foo (iye: T, f: impl Copy) laaye lati lo sintasi bi "foo:: (32, 3)" ni afihan iru ti jeneriki.
  • Iyipada si lilo ilana NLL (Non-Lexical Lifetimes) ilana fun idamo awọn iṣoro pẹlu yiya oniyipada ti pari. NLL ṣe iṣiro iṣiro ni ipele ti ṣeto awọn itọka ninu iwọn sisan ipaniyan, eyiti o fun ọ laaye lati ni ilọsiwaju didara oluṣayẹwo yiya oniyipada (oluyẹwo oluya) ati gba ipaniyan diẹ ninu awọn iru koodu ti o pe, lilo eyiti eyiti o ṣamọna tẹlẹ. si aṣiṣe. Atilẹyin fun ẹrọ atijọ ti o lo isọdọmọ igbesi aye ni ipele lexical ti yọkuro patapata lati rustc, ati lilo NLL tuntun ti ni imuse nibi gbogbo.
  • Apa tuntun ti API ni a ti gbe si ẹka ti iduroṣinṣin, pẹlu awọn ọna ati awọn imuse ti awọn abuda ti jẹ imuduro:
    • orun :: lati_fn
    • apoti :: sinu_pin
    • BinaryHeap :: try_reserve
    • BinaryHeap :: try_reserve_exact
    • OsString :: gbiyanju_reserve
    • OsString :: gbiyanju_reserve_exact
    • PathBuf :: try_reserve
    • PathBuf :: gbiyanju_reserve_exact
    • Ona:: gbiyanju_wa
    • Ref :: filter_map
    • RefMut :: filter_map
    • NonNull:: <[T]>:: lẹn
    • Nini :: oniye_sinu
    • Ipv6Addr :: to_ipv4_mapped
    • unix :: io :: AsFd
    • unix :: io:: YiyaFd<'fd>
    • unix :: io :: iniFd
    • windows :: io :: AsHandle
    • windows :: io :: Lowo Handle

      orisun: opennet.ru

Fi ọrọìwòye kun