Harshen shirye-shiryen tsatsa 1.40

aka buga sakin harshe na tsarin shirye-shirye Kishiya 1.40, wanda aikin Mozilla ya kafa. Harshen yana mai da hankali kan amincin ƙwaƙwalwar ajiya, yana ba da sarrafa ƙwaƙwalwar ajiya ta atomatik, kuma yana ba da kayan aiki don cimma babban aiki daidaici ba tare da amfani da mai tara shara ba lokacin gudu.

Gudanar da ƙwaƙwalwar ajiya ta atomatik na Rust yana 'yantar da mai haɓakawa daga magudin nuni kuma yana ba da kariya daga matsalolin da suka taso daga ƙananan ma'aunin ƙwaƙwalwar ajiya, kamar damar shiga ƙwaƙwalwar ajiya bayan kyauta, ɓangarorin null pointer, buffer overruns, da makamantansu. Ana haɓaka mai sarrafa fakiti don rarraba ɗakunan karatu, tabbatar da taro da sarrafa abubuwan dogaro ta hanyar aikin. ofishin, ba ku damar samun ɗakunan karatu da ake buƙata don shirin a dannawa ɗaya. Ana tallafawa wurin ajiya don ɗaukar ɗakunan karatu akwati.io.

Main sababbin abubuwa:

  • Ƙara ikon yin alama ga tsarin (tsari) da ƙididdiga (enum tare da bambance-bambancen block) ta amfani da sifa "#[ba_karasawa]", wanda Yana da damar a nan gaba, ƙara sababbin filaye da zaɓuɓɓuka don bayyana sifofi da ƙididdiga. Misali, masu haɓaka na'urori waɗanda ke da tsari tare da filaye da aka bayyana a bainar jama'a za su iya amfani da "#[non_exhaustive]" don yin alama ga tsarin da ƙila a sami ƙarin sabbin filayen nan gaba. Har zuwa yanzu, a cikin irin wannan yanayi, an tilasta wa mai haɓakawa ya zaɓi tsakanin ayyana filayen a asirce da ɗaure ga jerin filayen da ba za a iya canzawa ba. Sabuwar sifa tana cire wannan iyakance kuma tana ba ku damar ƙara sabbin filayen nan gaba ba tare da haɗarin keta lambar waje da aka haɗa a baya ba. A cikin fakitin akwati, lokacin da zaɓuɓɓukan da suka dace a cikin sashin "match", ana buƙatar takamaiman ma'anar abin rufe fuska "_ => {...}", wanda ke rufe yiwuwar filayen gaba, in ba haka ba za a nuna kuskure lokacin ƙara sabbin filayen.
  • Kara da ikon kiran procedural macro mac!() a cikin wani nau'i mahallin. Misali, yanzu zaku iya rubuta "nau'in Foo = expand_to_type!(bar)" idan "expand_to_type" macro ne na tsari.
  • A cikin "bangarorin {...}". kara da cewa ikon yin amfani da tsari da sifa macros, gami da “bang!()” macros, misali:

    dokokin macro! make_item { ($ name: ident) => {fn $name(); } }

    waje {
    make_item!(alpha);
    make_item!(beta);
    }

    waje "C" {
    #[na_identity_macro] fn foo();
    }

  • A cikin macros aiwatar ikon samar da abubuwa "macro_rules!" Samar da "macro_rules!" mai yiwuwa duka a cikin macros-kamar aiki ("mac! ()") da kuma a cikin macro a cikin nau'in halayen ("#[mac]").
  • A cikin $m: meta taswira kashi kara da cewa goyan bayan ƙididdige ƙididdiga na alamomi na sabani ("[TOKEN_STREAM]", "{TOKEN_STREAM}" da "(TOKEN_STREAM)"), misali:

    dokokin macro! accept_meta { ($m:meta) => {} }
    yarda_meta!( my :: hanya );
    yarda_meta! (na :: hanya = "lit");
    yarda_meta! (na :: hanya (abc));
    yarda_meta! (na :: hanya [abc]);
    yarda_meta! (na :: hanya {abc});

  • A cikin yanayin Rust 2015, ana kunna fitowar kuskure don matsalolin da aka gano lokacin duba aro na masu canji (mai duba aro) ta amfani da dabarar NLL (Non-Lexical Lifetimes). A baya can, an maye gurbin gargaɗin tare da kurakurai yayin aiki a yanayin Rust 2018.
    Bayan an tsawaita canjin zuwa yanayin Rust 2015, masu haɓakawa sun sami damar ƙarshe rabu da mu daga tsohon mai duba bashi.

    Bari mu tuna cewa tsarin tabbatarwa bisa sabon tsarin yin la'akari da rayuwar canjin aro ya sa ya yiwu a gano wasu matsalolin da tsohuwar lambar tabbatarwa ba ta lura da su ba. Tunda fitowar kuskure don irin waɗannan cak ɗin na iya shafar dacewa da lambar aiki a baya, an fara ba da gargaɗin maimakon kurakurai.

  • Siffar “const”, wacce ke ƙayyade yuwuwar amfani da ita a kowane mahallin maimakon madaidaicin, ana amfani da ita don aikin is_power_of_biyu (na lamba marasa sa hannu).
  • An matsar da wani sabon yanki na API zuwa tsayayyen nau'in, gami da todo!() macro da yanki :: maimaita, mem :: ɗauka, BTreeMap :: samun_key_value, HashMap :: samun_key_value, hanyoyin sun daidaita.
    Zabin :: as_deref, Option :: as_deref_mut, Option :: flatten, UdpSocket :: peer_addr, {f32,f64} :: zama_bytes, {f32,f64} ::to_le_bytes,{f32,f64}::to_ne_bytes, {f32, f64}::daga_be_bytes, {f32,f64}::daga_le_bytes, da {f32,f64}::daga_ne_bytes.

  • A cikin kayan sarrafa kunshin
    aiwatar gargadin caching compiler akan faifai. An ƙara zaɓin "metadata kaya" zuwa umarnin "metadata kaya".--tace-dandamali" don nuna fakiti kawai da aka ɗaure zuwa ƙayyadadden dandalin manufa a cikin ginshiƙin ƙudurin dogaro. An ƙara zaɓin daidaitawar sigar http.ssl don ayyana ingantattun sigogin TLS.
    Ƙara ikon buga sashin "dev-dogara" ba tare da tantance maɓallan "version" ba.

  • Rustc compiler yana ba da tallafi na mataki na uku don dandamali masu niyya thumbv7neon-unknown-linux-musleabihf, aarch64-unknown-none-softfloat, mips64-unknown-linux-muslabi64 da mips64el-unknown-linux-muslabi64. Mataki na uku ya ƙunshi tallafi na yau da kullun, amma ba tare da gwaji ta atomatik da buga ginin hukuma ba.

source: budenet.ru

Add a comment