Rust 1.47 Chirongwa Mutauro Kuburitswa

rakabudiswa kuburitsa 1.47 yemutauro wepurogiramu yemutauro ngura, yakatangwa neMozilla project. Mutauro unotarisana nekuchengetedza ndangariro, unopa otomatiki ndangariro manejimendi, uye inopa nzira yekuwana yakakwirira basa parallelism pasina kushandisa muunganidzi wemarara ΠΈ runtimetime (nguva yekumhanya inodzika kusvika kukutanga kwekutanga uye kugadzirisa raibhurari yakajairwa).

Rust's otomatiki ndangariro manejimendi inobvisa zvikanganiso kana ichishandisa anongedza uye inodzivirira kubva kune yakaderera-level memory manipulation, sekuwana nzvimbo yekurangarira mushure mekunge yasunungurwa, null pointer dereferences, buffer overruns, nezvimwe. Maneja wepakeji ari kugadzirwa kugovera maraibhurari, kuona kuungana uye kugadzirisa zvinovimbika neprojekiti. kago. A repository inotsigirwa kuitisa maraibhurari crates.io.

chikuru zvitsva:

  • Inoshandiswa tsigiro yemhando arrays chero saizi. Kare, nekuda kwekusakwanisa kutsanangura mabasa egeneric kune ese akaenzana kukosha, raibhurari yakajairwa yakapa yakavakirwa-mukati tsigiro yehunhu chete kune arrays anosvika makumi matatu nemaviri muhukuru (hunhu hwesaizi yega yega hwaitsanangurwa statically). Nekuda kwekugadzirwa kwekushanda kweanogara achigadzirwa ("const generics"), zvakave nyore kutsanangura mabasa egeneric kune chero saizi yemhando, asi haasati abatanidzwa mune yakagadzikana maficha emitauro, kunyangwe iwo anoitwa mumubatanidzwa uye ari. ikozvino zvinobatanidzwa muraibhurari yakajairika yemhando dzemhando ipi neipi.

    Semuenzaniso, iyo inotevera kuvaka muRust 1.47 ichadhinda zviri mukati mehurongwa, kunyangwe kare zvaizokonzera kukanganisa:

    fn chikuru() {
    rega xs = [0; 34];

    println!("{:?}", xs);
    }

  • Inopihwa kuburitsa kweapfupi trace (backtrace), inobuda mumamiriro e emergency. Zvinhu zvisingafadzi mumamiriro mazhinji, asi zvinokanganisa zvinobuda uye zvinokanganisa kutarisa kubva kune izvo zvinokonzeresa dambudziko, hazvibatanidzwe kubva mukutsvaga. Kuti udzosere tsvakiridzo yakazara, unogona kushandisa shanduko yenharaunda "RUST_BACKTRACE=yakazara". Somuenzaniso, nokuda kwekodhi

    fn chikuru() {
    kutya!();
    }

    Kare, tsvakiridzo yaibuda mumatanho makumi maviri nematatu, asi ikozvino ichaderedzwa kusvika
    3 nhanho dzinokutendera iwe kuti ubate nekukurumidza essence:

    thread 'main' yakavhunduka pa 'explicit panic', src/main.rs:2:5
    stack backtrace:
    0: std::panicking::tanga_kuvhunduka
    pa/rustc/d…d75a/library/std/src/panicking.rs:497
    1: nhandare::main
    pa ./src/main.rs:2
    2: musimboti::ops::basa::FnOnce::call_kamwechete
    pa/rustc/d…d75a/library/core/src/ops/function.rs:227

  • Iyo rustc compiler yakagadziridzwa kuvaka uchishandisa LLVM 11 (Rust anoshandisa LLVM semushure me kugadzirwa kwekodhi) Panguva imwecheteyo, kugona kuvaka nevakuru veLLVM, kusvika kuvhezheni 8, inochengetwa, asi nekukasira (mu. rust-lang/llvm-purojekiti) ikozvino iri kushandisa LLVM 11. LLVM 11 inotarisirwa kubudiswa mumazuva anouya.
  • PaWindows papuratifomu, iyo rustc compiler inopa rutsigiro rwekugonesa kudzora kuyerera kutendeseka cheki (Kudzora Flow Guard), yakabatidzwa uchishandisa "-C control-flow-guard" mureza. Pane mamwe mapuratifomu mureza uyu hautariswe parizvino.
  • Chikamu chitsva che APIs chakaendeswa kune yakagadzikana chikamu, kusanganisira yakagadzikana
    Ident ::nyowani_raw,
    Range::haina_isina,
    RangeInclusive::haina_isina,
    Mhedzisiro::as_deref,
    Mhedzisiro::as_deref_mut,
    Vec::kudonha,
    pointer::offset_from,
    f32::TAU uye
    f64::TAU.

  • Iyo "const" hunhu, iyo inosarudza mukana wekuishandisa mune chero mamiriro pachinzvimbo chekugara, inoshandiswa munzira idzi:
    • itsva kune ese manhamba asiri zero;
    • checked_add, checked_sub, checked_mul, checked_neg, checked_shr, saturating_add, saturating_sub uye saturating_mul yezvose zvakakwana;
    • is_ascii_alphabetic, is_ascii_uppercase, is_ascii_lowercase, is_ascii_alphanumeric, is_ascii_digit, is_ascii_hexdigit, is_ascii_punctuation, is_ascii_graphic, is_ascii_whitespace uye is_ascii_ucontrol.
  • YeFreeBSD zvinobatanidzwa toolkit kubva kuFreeBSD 11.4 (FreeBSD 10 haitsigire LLVM 11).

Source: opennet.ru

Voeg