Rust 1.47 Fa'apolokalame Gagana Fa'asa'oloto

Faʻasalalau 1.47 o le Rust system programming language, faʻavaeina e le poloketi Mozilla, ua faʻasalalau. O le gagana e taulaʻi i le saogalemu o manatuaga, e maua ai le faʻaogaina o mea e manatua ai, ma maua ai le auala e ausia ai le maualuga o galuega tutusa e aunoa ma le faʻaaogaina o se lapisi poʻo le taʻavale (ua faʻaitiitia le taimi i le amataga ma le tausiga o le faletusi masani).

Ole pulega otometi ole manatua ole Rust e fa'ate'aina mea sese pe a fa'aogaina fa'asinomaga ma puipuia mai fa'afitauli e tula'i mai ile fa'aogaina o mafaufauga maualalo, e pei ole ulufale atu i se vaega e manatua pe a uma ona fa'asa'olotoina, fa'aleaogaina le fa'asinomaga, fa'aliga fa'aletonu, ma isi. Ina ia tufatufa faletusi, faʻamautinoa le faʻapipiʻiina ma pulea faʻalagolago, o le poloketi o loʻo atiaʻe le pule o pusa uta. O le crates.io repository e lagolagoina mo le talimalo faletusi.

Autu fa'afouga:

  • Fa'atinoina le lagolago mo uiga mo fa'asologa o lapopo'a fa'apitoa. I le taimi muamua, ona o le le mafai ona faʻamatalaina galuega lautele mo tau faʻatatau uma, o le faletusi masani na tuʻuina atu i totonu o le lagolago uiga naʻo mo arrays e oʻo atu i le 32 elemene i le lapopoa (o uiga mo le tele taʻitasi na faʻamalamalamaina faʻamau). Faʻafetai i le faʻavaeina o le const generics functionality, na mafai ai ona faʻamalamalamaina galuega lautele mo soʻo se lapoʻa tele, ae e leʻi aofia ai i totonu o tulaga mautu o le gagana, e ui lava o loʻo faʻatinoina i le compiler ma o loʻo faʻaaogaina nei i le faletusi masani. mo ituaiga fa'asologa o so'o se tele.
    Mo se faʻataʻitaʻiga, o le fausiaina o loʻo i lalo i le Rust 1.47 o le a lolomi ai mea o loʻo i totonu o se laina, e ui o le taimi muamua e ono mafua ai se mea sese:

fn autu() {
tu'u xs = [0; 34];
println!("{:?}", xs);
}

  • Tuuina atu mea e maua mai i fa'asologa pupuu (backtrace), fa'atino i fa'alavelave fa'afuase'i. O elemene e le fiafia i le tele o tulaga, ae faʻalavelaveina le gaioiga ma faʻalavelaveina le mafaufau mai mafuaʻaga autu o le faʻafitauli, e le aofia ai mai le faʻasologa. Ina ia toe faʻafoʻi se faʻasologa atoa, e mafai ona e faʻaogaina le fesuiaiga o le siosiomaga "RUST_BACKTRACE = tumu". Mo se faʻataʻitaʻiga, mo le code

fn autu() {
popole!();
}

I le taimi muamua, o le suʻega na faʻaalia i le 23 laʻasaga, ae o le taimi nei o le a faʻaititia i le 3 laasaga, e mafai ai ona e vave malamalama i le aano:

filo 'autu' fefe i le 'mata'utia le fefe', src/main.rs:2:5
fa'asologa i tua:
0: std :: popolevale :: amata_panic
i /rustc/d…d75a/library/std/src/panicking.rs:497
1: malae taalo:: autu
i ./src/main.rs:2
2: autu::ops::galuega::FnOnce::call_once
i /rustc/d…d75a/library/core/src/ops/function.rs:227

  • O le rustc compiler ua faʻafouina e fausia e faʻaaoga ai le LLVM 11 (Rust faʻaaogaina le LLVM e fai ma tua mo le faʻasologa o tulafono). I le taimi lava e tasi, o le mafai ona fausia ma le LLVM tuai, e oʻo atu i le version 8, o loʻo taofia, ae o le faaletonu (i le rust-lang/llvm-project) LLVM 11 ua faʻaaogaina nei. aso.
  • I luga o le Windows platform, o le rustc compiler o loʻo tuʻuina atu le lagolago mo le faʻatagaina o le siakiina o le saʻo o le tafe (Control Flow Guard), faʻaaogaina e faʻaaoga ai le fuʻa "-C control-flow-guard". I luga o isi fa'avae ua le amana'ia lenei fu'a mo le taimi nei.
  • O se vaega fou o le API ua tu'uina atu i le vaega mautu, e aofia ai fa'amautu Ident::new_raw, Range:: is_empty, RangeInclusive:: is_empty, Result::as_deref, Result::as_deref_mut, Vec::leak, pointer::offset_from , f32:: TAU ma f64::TAU.
  • O le uiga "const", lea e fuafua ai le avanoa e faʻaaogaina ai i soʻo se faʻamatalaga nai lo mea tumau, e faʻaaogaina i metotia:
    • fou mo numera uma e ese mai le zero;
    • siaki_add, checked_sub, checked_mul, checked_neg, checked_shl, checked_shr, saturating_add, saturating_sub ma saturating_mul mo numera uma;
    • o le_ascii_alphabetic, is_ascii_uppercase, is_ascii_lowercase, is_ascii_alphanumeric, is_ascii_numera, is_ascii_hexdigit, is_ascii_punctuation, is_ascii_graphic, is_ascii_whitespace ma is_ascii_control mo ituaiga char ma u8.
  • Mo FreeBSD, o le mea faigaluega mai le FreeBSD 11.4 o loʻo faʻaaogaina (FreeBSD 10 e le lagolagoina le LLVM 11).

Aveina mai opennet.ru

puna: linux.org.ru

Faaopoopo i ai se faamatalaga