Harshen shirye-shiryen tsatsa 1.51

An buga yaren shirye-shiryen tsarin Rust 1.51, wanda aikin Mozilla ya kafa, amma yanzu an haɓaka shi a ƙarƙashin inuwar ƙungiyar mai zaman kanta mai zaman kanta ta Rust Foundation. Harshen yana mai da hankali kan amincin ƙwaƙwalwar ajiya, yana ba da sarrafa ƙwaƙwalwar ajiya ta atomatik, kuma yana ba da hanyoyin samun daidaiton ɗawainiya mai girma ba tare da amfani da mai tara shara ko lokacin aiki ba (an rage lokacin aiki zuwa farawa na asali da kiyaye daidaitaccen ɗakin karatu).

Gudanar da ƙwaƙwalwar ajiya ta atomatik na Rust yana kawar da kurakurai yayin sarrafa masu nuni kuma yana ba da kariya daga matsalolin da suka taso daga ƙananan ƙananan ƙwaƙwalwar ajiya, kamar shiga yankin ƙwaƙwalwar ajiya bayan an 'yantar da shi, ɓangarorin null pointer, buffer overruns, da dai sauransu. Don rarraba ɗakunan karatu, tabbatar da taro da sarrafa abubuwan dogaro, aikin yana haɓaka manajan fakitin Cargo. Ana tallafawa ma'ajiyar crates.io don ɗaukar ɗakunan karatu.

Manyan sabbin abubuwa:

  • Ayyukan da ke da alaƙa da amfani da ƙididdiga na yau da kullun sun sami matsayi na mafi ƙarancin samfur mai inganci (MVP), yana ba da hasken kore don amfani da tartsatsi. Const Generics suna ba da damar nau'ikan su zama gama gari zuwa ƙima mai yawa, i.e. yi amfani da jita-jita na gabaɗaya iyakance ga kewayon ƙima na akai-akai, ba nau'ikan ko tsawon rayuwa ba. Wannan fasalin yana ba ku damar amfani da nau'ikan nau'ikan ma'auni da abstraction lokacin ƙirƙirar halaye don tsararru na kowane girman ba tare da ƙirƙirar nau'i daban ba ga kowane kewayon ƙimar inganci don tabbatar da cewa babu abubuwan da suka faru daga kan iyaka.

    An fara da sakin na yanzu, don tsararru masu nau'in “[T; N]" (nau'in T da girman N) yana ba da ikon iya ɗaukar nau'in nau'in nau'i da girman ta amfani da ƙima tare da kowane lamba, boolean da nau'ikan halaye (nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan har yanzu ba a tallafawa). Nau'in jeri na dindindin yana sauƙaƙa haɓaka haɓakar laburare sosai; misali, don amfani da tsararrun da ba a ɗaure ta da takamaiman nau'i da girma ba, zaku iya ƙayyade: struct Array { // ^^^^^^^^^^^^^^^^^ ma'anar jeri na yau da kullum: [T; TSORO] // ^^^^^^ amfaninsa }

    Lokacin amfani da gaske tare da wannan ma'anar "Array » mai tarawa zai samar da sigar Array: struct Array {jeri: [u8; 32]}

  • An daidaita std :: array :: IntoIter API, dangane da ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun bayanai, wanda tare da abin da zaku iya ƙirƙira masu haɓakawa ta ƙimar kowane tsararru: fn main () {bari array = [1, 2, 3, 4, 5] ; // A baya can, don ƙididdige ƙima, dole ne ku kira hanyar .iter () don abu a cikin array.iter () kofe () {println!("{}", abu); } // Yanzu za ku iya ƙayyade abu a cikin std :: tsararru :: IntoIter :: sabon (array) {println!("{}", abu); } }
  • Manajan fakitin kaya yanzu yana goyan bayan sabon filin warwarewa a cikin Cargo.toml, wanda za'a iya amfani dashi don kunna sigar ta biyu na mai warware fasalin. Sabuwar sigar ma'anar tana nisantar haɗa abubuwan dogaro da aka jera a cikin sashin "[fasali]" inda bai dace ba, alal misali, lokacin haɗa abin dogaro wanda ke buƙatar wasu daidaitattun sifofi a cikin rubutun rubutu da macros, amma lokacin amfani da fasalin da ba daidai ba. a cikin sakamakon aiwatar da fayil .

    Har zuwa yanzu, an haɗa ƙarfin fakitin da aka ambata sau da yawa a cikin jadawali na dogaro. Misali, idan aikin ya hada da foo dogaro da ke bayyana iyawar A da B, kuma ana amfani da wannan kunshin a cikin sauran fakitin bar da baz, kodayake mashaya ya dogara da foo tare da fasalin A, kuma baz ya dogara da foo tare da fasalin B, to. sakamakon zai zama kaya zai haɗu da waɗannan fasalulluka kuma ya haɗa foo tare da fasalulluka A da B. Wannan hanyar na iya haifar da fasalin da aka kunna saboda wasu dogaro da rashin dacewa da tsarin da aka yi niyya wanda aka gina sakamakonsa. Misali, lokacin da kake son amfani da sigar foo tare da "#![no_std]" a cikin aikin aiwatarwa tare da "#![no_std]", kuma a lokaci guda yi amfani da foo tare da "std" yayin ginin. rs. Lokacin da aka ƙididdige ƙuduri = "2" a cikin Cargo.toml, mai sarrafa fakitin yanzu zai yi ƙoƙarin magance wannan rikici daidai, yana raba dev, mai masauki da abin dogaro.

  • Cargo yana aiwatar da zaɓin split-debuginfo, wanda aka ƙayyade a cikin sashin "[profile]", da kuma tutar "-Csplit-debuginfo=unpacked" mai dacewa a cikin rustc, yana ba da aiwatar da sabuwar hanya don adana bayanan gyara kurakurai, wanda ke kawar da buƙatar kiran kayan aikin dsymutil kuma yana hanzarta tsarin ginawa sosai tare da bayanan gyara kurakurai a cikin macOS.
  • Stabilized makos "ptr:: addr_of!" da "ptr :: addr_of_mut!", wanda ke ba ka damar ƙirƙirar daskararrun maƙasudai don filayen da ba a haɗa su ba. amfani std ::ptr; #[repr(cushe)] struct Cushe {f1: u8, f2: u16, } an cika shi = Ciki {f1: 1, f2: 2}; // &packed.f2 zai haifar da maƙasudin da ba a haɗa su ba wanda ke haifar da halayen da ba a bayyana ba bari raw_f2 = ptr :: addr_of!(packed.f2); assert_eq! (mara lafiya {raw_f2.read_unaligned()}, 2);
  • An canza wani sabon yanki na API zuwa ga tsayayyen nau'in, gami da waɗannan hanyoyin an daidaita su:
    • Arc :: rage_ƙarfin_count
    • Arc :: karuwa_karfin_count
    • Sau ɗaya :: kira_sau ɗaya_force
    • Mai yiwuwa ::na gaba_if_eq
    • Ana iya gani :: na gaba_idan
    • Nemi :: Matsayi_Rafi
    • tsararru :: IntoIter
    • tsoro:: firgita_kowane
    • ptr:: addr_na!
    • ptr:: addr_of_mut!
    • yanki ::cika_da
    • yanki :: raba_inclusive_mut
    • yanki :: raba_haɗe
    • yanki ::strip_prefix
    • yanki ::strip_suffix
    • str :: raba_haɗe
    • sync :: OneState
    • aiki::wake
  • An aiwatar da matakin tallafi na uku don i386-unknown-linux-gnu, i486-unknown-linux-gnu, aarch64_be-unknown-linux-gnu, aarch64-unknown-linux-gnu_ilp32 da aarch64_be-unknown-linux-gnu_ilp32 dandamali . Mataki na uku ya ƙunshi tallafi na asali, amma ba tare da gwaji ta atomatik ba, buga ginin hukuma, ko duba ko za a iya gina lambar.

source: budenet.ru

Sayi amintaccen masauki don shafuka tare da kariyar DDoS, sabar VPS VDS 🔥 Sayi ingantaccen masaukin yanar gizo tare da kariyar DDoS, sabar VPS VDS | ProHoster