Rust 1.47 Chirongwa Mutauro Kuburitswa

Kuburitswa 1.47 yeRust system programming mutauro, yakavambwa neMozilla purojekiti, yakaburitswa. Mutauro unotarisana nekuchengetedza ndangariro, unopa otomatiki ndangariro manejimendi, uye inopa nzira dzekuwana yakakwira basa parallelism pasina kushandisa muunganidzi wemarara kana nguva yekumhanya (nguva yekumhanya inoderedzwa kuita yekutanga yekutanga 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. Kugovera maraibhurari, kuve nechokwadi kuungana uye kugadzirisa zvinotsamira, chirongwa ichi chiri kugadzira Cargo package maneja. Iyo crates.io repository inotsigirwa kuitisa maraibhurari.

Zvitsva zvikuru:

  • Kushandiswa kwerutsigiro rwemaitiro ezvirongwa zvehukuru husina kufanira. 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 kwe const generics functionality, zvakagoneka kutsanangura generic mabasa kune chero array saizi, asi haisati yabatanidzwa mune yakagadzikana maficha emutauro, kunyangwe iwo anoitwa mucomiler uye ave kushandiswa muraibhurari yakajairwa. kumarudzi akasiyana-siyana emhando ipi zvayo.
    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!();
}

Pakutanga, kuteedzera kwaibuda mumatanho makumi maviri nematatu, asi iko zvino kuchaderedzwa kusvika pamatanho matatu, zvichikubvumidza kuti ugone kubata iwo 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 ichishandisa LLVM 11 (Rust inoshandisa LLVM senge backend yekugadzira kodhi). Panguva imwecheteyo, kugona kuvaka nekare LLVM, kusvika kuvhezheni 8, inochengetwa, asi nekukasira (mu rust-lang/llvm-purojekiti) LLVM 11 yave kushandiswa. Kuburitswa kweLLVM 11 kunotarisirwa mukuuya. mazuva.
  • PaWindows papuratifomu, iyo rustc compiler inopa rutsigiro rwekugonesa kudzora kuyerera kutendeseka cheki (Kudzora Flow Guard), yakagadziriswa uchishandisa "-C control-flow-guard" mureza. Pane mamwe mapuratifomu mureza uyu hautariswe parizvino.
  • Chikamu chitsva cheAPI chakaendeswa kuchikamu chakagadzikana, kusanganisira yakagadzikana Ident ::nyowani_raw, Range::is_empty, RangeInclusive::is_empty, Result::as_deref, Result::as_deref_mut, Vec::leak, 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, iyo toolkit kubva kuFreeBSD 11.4 inoshandiswa (FreeBSD 10 haitsigire LLVM 11).

Yakatorwa kubva opennet.ru

Source: linux.org.ru

Voeg