ipata 1.68 Siseto ede Tu

Itusilẹ ti ede siseto gbogboogbo-idi Rust 1.68, 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ọ:

  • Oluṣakoso package Cargo ati ibi ipamọ crates.io ni atilẹyin iduroṣinṣin fun Ilana Sparse, eyiti o ṣalaye ọna tuntun ti ṣiṣẹ pẹlu atọka ti o ṣe afihan awọn ẹya ti o wa ti gbogbo awọn idii ti o wa ninu ibi ipamọ naa. Ilana tuntun ngbanilaaye lati ṣe alekun iyara ti ṣiṣẹ pẹlu crates.io ati yanju awọn iṣoro iwọn pẹlu idagbasoke siwaju ni nọmba awọn idii ni ibi ipamọ.

    Lati dinku awọn idaduro ti o ṣẹlẹ nipasẹ gbigbasile atọka kikun, Sparse dipo iraye si atọka nipa lilo Git pẹlu gbigba lati ayelujara taara lori HTTPS nikan ni data atọka pataki, ni wiwa awọn igbẹkẹle ti iṣẹ akanṣe kan. Iṣẹ tuntun kan, index.crates.io, ni a lo lati pese data atọka. Nipa aiyipada, ilana tuntun ti gbero lati lo ni ẹka Rust 1.70, ati pe ṣaaju pe, lati muu ṣiṣẹ, o le ṣeto iyipada ayika “CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse” tabi ṣafikun paramita 'protocol =' si “[awọn iforukọsilẹ. crates-io]" apakan ti .cargo/config.toml faili 'sparse'.

  • Fi kun “pin!” Makiro, eyiti o fun ọ laaye lati ṣẹda ipilẹ Pin<& mut T> lati ikosile “T” pẹlu pinni agbegbe ti ipinlẹ rẹ (bii Apoti :: pin, ko pin iranti sori okiti, ṣugbọn sopọ ni ipele akopọ).
  • A ti dabaa oluṣakoso aṣiṣe ipin iranti aiyipada, ti a lo nigba lilo package alloc boṣewa. Awọn ohun elo ti o mu alloc nikan ṣiṣẹ (laisi std) yoo pe oluṣakoso “ijaaya!” nigbati ipin iranti ba kuna, eyiti o le ṣe ifilọlẹ ni yiyan nipa lilo “#[panic_handler]”. Awọn eto lilo ile-ikawe std yoo tẹsiwaju lati tẹ alaye aṣiṣe si stderr ati jamba.
  • 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:
    • {mojuto,std} :: pin :: pin!
    • impl Lati fun {f32,f64}
    • std :: ona :: MAIN_SEPARATOR_STR
    • impl DerefMut fun PathBuf
  • Ẹya “const”, eyiti o pinnu iṣeeṣe ti lilo ni eyikeyi ipo dipo awọn alakan, ni a lo ninu iṣẹ VecDeque :: iṣẹ tuntun.
  • Lati ṣiṣẹ lori iru ẹrọ Android, o kere ju NDK r25 (API 19) ni bayi nilo, i.e. Ẹya Android ti o ni atilẹyin ti o kere julọ ti dide si 4.4 (KitKat).
  • Ipele atilẹyin kẹta ti jẹ imuse fun pẹpẹ Sony PlayStation Vita (armv7-sony-vita-newlibeabihf). Ipele kẹta jẹ atilẹyin ipilẹ, ṣugbọn laisi idanwo adaṣe, titẹjade awọn ile-iṣẹ osise, tabi ṣayẹwo boya koodu naa le kọ.

orisun: opennet.ru

Fi ọrọìwòye kun