Rust 1.45 Whakaputa Reo Papatono

whakaputaina tuku 1.45 o te reo whakahōtaka pūnaha waikura, i hangaia e te kaupapa Mozilla. Ka arotahi te reo ki te haumaru mahara, ka whakarato i te whakahaere mahara aunoa, ka whakarato taputapu mo te whakatutuki i te whakarara mahi teitei me te kore e whakamahi i te kaikohi paru me te waahi.

Ko te whakahaere mahara aunoa a Rust ka whakakore i nga hapa i te wa e raweke ana i nga tohutohu me te whakamarumaru i nga raru ka puta mai i te raweke mahara taumata-iti, penei i te urunga ki tetahi rohe mahara i muri i te wa e wetekina ana, nga tohu tohu kore, te paheketanga o te putunga, aha atu. Kei te whakawhanakehia he kaiwhakahaere mokihi hei tohatoha whare pukapuka, hei whakarite i te huihuinga me te whakahaere i nga whakawhirinakitanga a te kaupapa. utanga, ka taea e koe te tiki i nga whare pukapuka e hiahiatia ana mo te kaupapa i te paato kotahi. Ka tautokohia he putunga hei manaaki i nga whare pukapuka crates.io.

Main nga mahi auaha:

  • Kua whakakorehia kua roa koha i te wa e mahi ana i nga huringa i waenga i nga tauoti me nga tau ira maangi. I te mea ka whakamahia e te Kaihanga Rust te LLVM hei tuara, i mahia nga momo mahi hurihanga na roto i nga tohutohu waehere takawaenga LLVM penei i te ftoui, kei a ia tetahi waahanga nui - te whanonga kore tautuhi mena kaore te uara ka puta ki te momo whaainga. Hei tauira, ina huri ana i te uara rewa 300 me te momo f32 ki te momo tauoti u8, karekau e kitea te hua, ka rereke pea i runga i nga punaha rereke. Ko te raruraru ko tenei ahuatanga ka puta i roto i te waehere kaore i te tohuhia hei "haumaru".

    Mai i te Rust 1.45, ka tino whakatauhia te whanonga o te momo rahi o te waipuke, a ka tirohia e te mahi whakawhiti "hei" mo te waipuke me te akiaki i te uara ki te huri ki te uara morahi, iti rawa ranei o te momo whaainga (mo te tauira i runga ake nei, he uara o 300 ka huri ki te 255). Hei whakakore i aua arowhai, ka tukuna etahi atu waea API "{f64, f32}::to_int_unchecked", e mahi ana i roto i te aratau haumaru.

    maka fn(x: f32) -> u8 {
    x hei u8
    }

    fn matua() {
    kia nui_nui = 300.0;
    kia rawa_iti = -100.0;
    kia nan = f32::NAN;

    kia x: f32 = 1.0;
    kia y: u8 = kino { x.to_int_unchecked()};

    println!("too_big_casted = {}", maka(too_nui)); // putanga 255
    println!("too_small_casted = {}", maka(too_small)); // putanga 0
    println!("kaore he_tau_whakamaori = {}", maka(nan)); // putanga 0
    }

  • Whakamahia te whakapumau tonotono tikangate ahua o nga korero, nga tauira, me nga korero. I mua, kaore e taea te karangahia nga tonotono ki nga waahi katoa, engari i etahi waahanga anake o te waehere (hei waea motuhake, kaore i te hono ki etahi atu waehere). Ko te whakawhānui ake i te huarahi e kiia ai nga tonotono, he rite ki nga mahi, tetahi o nga whakaritenga kia pai ai te mahi o te angamahi tukutuku. Rocket i roto i nga putanga pumau o Rust. I mua, ki te whakatutuki i etahi atu ngawari ki te tautuhi i nga kaikawe i roto i te Rocket me whakaahei tetahi waahanga whakamatautau e kiia nei ko "proc_macro_hygiene", karekau i te waatea i nga putanga pumau o Rust. Kua hangaia tenei mahi ki roto i nga putanga pumau o te reo.
  • Whakaaetia ki te whakamahi i nga awhe me te momo "char" ki te huri i nga uara awhe (ops::{Range, RangeFrom, RangeFull, RangeInclusive, RangeTo}):

    mo te ch i roto i te ‘a’..=’z’ {
    tāngia!("{}", ch);
    }
    println!(); // Ka tā "abcdefghijklmnopqrstuvwxyz"

  • He waahanga hou o nga API kua whakawhitia ki te waahanga pumau, tae atu ki te whakapumau
    Arc::as_ptr,
    BtreeMap::tango_whakaurunga,
    Rc::as_ptr,
    rc::He ngoikore::as_ptr,
    rc::He ngoikore::from_raw,
    rc::He ngoikore::roto_raw,
    str::strip_prefix,
    str::strip_suffix,
    tukutahi::He ngoikore::as_ptr,
    tukutahi::He ngoikore::from_raw,
    tukutahi::He ngoikore::roto_raw,
    tohu::UNICODE_VERSION,
    Wā::whakaoti_i,
    Awheawhe::located_at,
    Wā::pae_whakaranu,
    unix::process::CommandExt::arg0.

  • Kua taapirihia e te kaitoi rustc he tautoko mo te whakakore i nga ahuatanga o te papaapapa whaanui ma te whakamahi i te haki "whangai-a-ira", hei tauira, "-C target-feature=+avx2+fma". Kua taapirihia nga haki hou:
    "force-unwind-tables" ki te whakaputa i nga teepu karanga whakamaarama, ahakoa te rautaki whakahaere tukinga; "whakamau-bitcode" hei whakahaere mena kei te whakauruhia te LLVM bitcode ki nga rlibs kua hangaia. Ko te haki "whakamau-bitcode" ka taea te taunoa i te Uta hei arotau i te wa hanga me te kohi mokowā kōpae.

  • Ko te taumata tuatoru o te tautoko kua whakaratohia mo nga papaaho mipsel-sony-psp me thumbv7a-uwp-windows-msvc. Ko te taumata tuatoru ko te tautoko taketake, engari kaore he whakamatautau aunoa me te whakaputanga o nga hanga mana.

I tua atu, ka taea te tohu te korero mo te hanga i te mea ngawari taupānga i roto i te reo Rust, ka tiimata ki te whakamahi i te bootloader punaha me te reri ki te uta i a koe ano hei utu mo te punaha whakahaere.
Ko te tuhinga te tuatahi i roto i te raupapa i whakatapua ki te whakaatu i nga tikanga e hiahiatia ana i roto i nga kaupapa taumata-iti me te whanaketanga OS.

Source: opennet.ru

Tāpiri i te kōrero