Rust 1.47 Fa'apolokalame Gagana Fa'asa'oloto

lomia faasalalau fa'amalolo 1.47 o le gagana polokalame polokalame ele, na faavaeina e le poloketi Mozilla. O le gagana e taulaʻi i le saogalemu o manatuaga, maua ai le puleaina o manatuaga otometi, ma maua ai se auala e ausia ai le maualuga o galuega tutusa e aunoa ma le faʻaaogaina tagata ao lapisi и taʻaloga (o le taimi e fa'agasolo ai i lalo 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'ailoga ma puipuia mai fa'afitauli e tula'i mai i le fa'aogaina o mafaufauga maualalo, e pei o le ulufale atu i se vaega manatua pe a uma ona fa'asa'olotoina, fa'aletonu le fa'asinomaga, fa'alavelave fa'aletonu, ma isi. O lo'o fa'atupuina se pule o pusa e tufatufaina atu faletusi, fa'amautinoa le fa'apotopotoina ma pulea fa'alagolago e le poloketi. uta. E lagolagoina se faleteuoloa e talimalo ai faletusi crates.io.

tele mea fou:

  • Fa'atino lagolago mo ituaiga fa'asologa so'o se tele. 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 faʻatinoga o faʻasologa masani ("const generics"), na mafai ai ona faʻamatalaina galuega lautele mo soʻo se lapoʻa tele, ae e leʻi aofia ai i totonu o le gagana mautu, e ui lava o loʻo faʻatinoina i le tuʻufaʻatasiga ma e nei aafia i totonu o le faletusi masani mo fa'asologa o uiga 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 gaosia i 23 laasaga, ae o le taimi nei o le a faʻaititia i
    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 toe faʻafouina e fausia ai le faʻaaogaina LLVM 11 (Ele faʻaaoga LLVM o se pito i tua mo fa'atupu tulafono). I le taimi lava e tasi, o le mafai ona fausia ma LLVM matutua, e oʻo atu i le version 8, o loʻo taofia, ae le mafai (i le rust-lang/llvm-poloketi) o loʻo faʻaaogaina nei le LLVM 11. LLVM 11 o loʻo faʻamoemoe e tatalaina i aso a sau.
  • 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 e le amana'ia lenei fu'a mo le taimi nei.
  • O se vaega fou o API ua tuʻuina atu i le vaega mautu, e aofia ai le faʻamautuina
    Ident::new_raw,
    Avanoa:: is_empty,
    RangeInclusive:: is_empty,
    I'uga::as_deref,
    I'uga::as_deref_mut,
    Vec::lea,
    fa'asino::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 aafia mea faigaluega mai le FreeBSD 11.4 (FreeBSD 10 e le lagolagoina le LLVM 11).

puna: opennet.ru

Faaopoopo i ai se faamatalaga