Harshen shirye-shiryen tsatsa 1.60

An buga yaren shirye-shirye na Rust 1.60 na gabaɗaya, wanda aikin Mozilla ya kafa, amma yanzu an haɓaka shi a ƙarƙashin inuwar wata kungiya mai zaman kanta mai zaman kanta ta Rust Foundation. Harshen yana mai da hankali kan amincin ƙwaƙwalwar ajiya kuma yana ba da hanyoyin cimma babban daidaiton aiki yayin guje wa yin amfani da mai tara shara da lokacin aiki (an rage lokacin aiki zuwa farawa na asali da kiyaye daidaitaccen ɗakin karatu).

Hanyoyin sarrafa ƙwaƙwalwar Rust suna ceton mai haɓakawa daga kurakurai yayin sarrafa masu nuni da kuma kariya daga matsalolin da suka taso saboda ƙarancin kulawar ƙwaƙwalwar ajiya, kamar samun damar wurin ƙwaƙwalwar ajiya bayan an 'yantar da shi, cire maƙasudin null, buffer overruns, da dai sauransu. Don rarraba ɗakunan karatu, samar da gini da sarrafa abubuwan dogaro, aikin yana haɓaka manajan fakitin Kaya. Ana tallafawa ma'ajiyar crates.io don ɗaukar ɗakunan karatu.

Ana ba da amincin ƙwaƙwalwar ajiya a cikin Tsatsa a lokacin tattarawa ta hanyar duba tunani, kiyaye bin diddigin mallakar abu, kiyaye tsawon rayuwa (masu iyawa), da tantance daidaiton damar ƙwaƙwalwar ajiya yayin aiwatar da lambar. Tsatsa kuma yana ba da kariya daga ambaliya mai lamba, yana buƙatar ƙaddamar da ƙima mai mahimmanci kafin amfani, yana sarrafa kurakurai mafi kyau a cikin daidaitaccen ɗakin karatu, yana amfani da ra'ayi na nassoshi marasa canzawa da masu canji ta tsohuwa, yana ba da buga rubutu mai ƙarfi don rage kurakurai masu ma'ana.

Manyan sabbin abubuwa:

  • Mai tara rustc yana da tsayayyen tsarin tushen LLVM don samar da bayanan ɗaukar hoto da aka yi amfani da shi don kimanta kewayon lambar yayin gwaji. Don kunna bayanan ɗaukar hoto yayin taro, dole ne ku yi amfani da tutar "-Cinstrument-coverage", alal misali, fara taron tare da umarnin "RUSTFLAGS="-C kayan aiki-coverage" kayan gini. Bayan gudanar da fayil ɗin aiwatarwa da aka haɗa ta wannan hanyar, default.profraw fayil ɗin za a adana a cikin kundin adireshi na yanzu, don sarrafa abin da zaku iya amfani da utility na lvm-profdata daga ɓangaren lvm-tools-preview. Fitowar da lvm-profdata ta sarrafa sannan za a iya wuce shi zuwa llvm-cov don samar da rahoton ɗaukar hoto da aka bayyana. Ana ɗaukar bayanai game da hanyar haɗin kai zuwa lambar tushe daga fayil ɗin aiwatarwa da ake bincika, wanda ya haɗa da mahimman bayanai game da haɗin kai tsakanin ƙididdigar ɗaukar hoto da lambar. 1| 1|fn babba() { 2| 1| println! ("Hello, duniya!"); 3| 1|}
  • A cikin manajan kunshin kaya, an tabbatar da goyon baya ga tutar "-timeings", wanda ya haɗa da samar da cikakken rahoto game da ci gaban ginin da lokacin aiwatar da kowane mataki. Rahoton na iya zama da amfani don inganta aikin tsarin taro.
  • Manajan fakitin kaya yana ba da sabon tsarin daidaitawa da zaɓin abubuwan dogaro na zaɓi, wanda aka saita a cikin fayil ɗin Cargo.toml ta jera jerin sunayen kaddarorin a cikin sashin [fasali] kuma kunna ta hanyar kunna kaddarorin yayin ginin kunshin. ta amfani da tutar "--features". Sabuwar sigar tana ƙara goyan baya ga abubuwan dogaro a cikin wuraren sunaye daban-daban da masu dogaro da rauni.

    A cikin shari'ar farko, yana yiwuwa a yi amfani da abubuwa tare da prefix "dep:" a cikin sashin "[fasali]" don haɗa kai tsaye zuwa abin dogaro na zaɓi ba tare da wakiltar wannan dogaro a matsayin sifa ba. A yanayi na biyu, an ƙara goyan bayan yin alama tare da alamar “?”. ("kunshin-suna?/fari-suna") abubuwan dogaro na zaɓi waɗanda yakamata a haɗa su kawai idan wasu kadarorin sun haɗa da abin dogaro na zaɓi. Misali, a cikin misalin da ke ƙasa, ba da damar mallakar serde zai ba da damar dogaro da “serde”, da kuma “serde” don dogaro da “rgb”, amma idan an kunna dogaron “rgb” a wani wuri: [dogara] serde = { sigar = " 1.0.133", na zaɓi = gaskiya } rgb = { sigar = "0.8.25", na zaɓi = gaskiya } [fasali] serde = ["dep: serde", "rgb?/serde"]

  • An dawo da tallafi don tarawa na ƙara, wanda aka kashe a cikin sakin ƙarshe. An warware kwaro mai tarawa wanda ya sa aka kashe fasalin.
  • An warware wasu matsaloli tare da samar da masu ƙidayar kai tsaye tare da garantin lokaci na monotonic, wanda ke la'akari da lokacin da tsarin ya kashe a yanayin barci. A baya can, ana amfani da OS API a duk lokacin da zai yiwu don sarrafa mai ƙidayar lokaci, wanda ba ya la'akari da matsaloli masu rikitarwa waɗanda ke karya ka'idodin lokaci, kamar matsalolin hardware, amfani da haɓakawa, ko kurakurai a cikin tsarin aiki.
  • An koma wani sabon yanki na API zuwa nau'in barga, gami da hanyoyin da aiwatar da halaye an daidaita su:
    • Arc:: sabon_cyclic
    • Rc :: new_cyclic
    • yanki :: TserewaAscii
    • <[u8]>>:: gudun hijira_ascii
    • u8 :: tserewa_ascii
    • Vec :: spare_capacity_mut
    • Wataƙila Uninit :: zato_init_drop
    • Wataƙila Uninit :: ɗauka_init_ karanta
    • i8:: abs_diff
    • i16:: abs_diff
    • i32:: abs_diff
    • i64:: abs_diff
    • i128:: abs_diff
    • isa :: abs_diff
    • u8:: abs_diff
    • u16:: abs_diff
    • u32:: abs_diff
    • u64:: abs_diff
    • u128:: abs_diff
    • amfani :: abs_diff
    • Nuni don io :: KuskureKind
    • Daga don ExitCode
    • Ba don! (buga "ba taba")
    • _Op_Assign <$t>
    • arch :: is_aarch64_an gano_fasalin_saffa!
  • An aiwatar da matakin tallafi na uku don mips64-openwrt-linux-musl* da armv7-unknown-linux-uclibceabi (softfloat). 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.
  • An canza mai tarawa don amfani da LLVM 14.

Bugu da ƙari, kuna iya lura:

  • Ƙarin tallafi don bootstrapping mai tara rustc ta amfani da rustc_codegen_gcc backend, wanda ke ba ku damar amfani da ɗakin karatu na libgccjit daga aikin GCC azaman janareta na lamba a cikin rustc, wanda ke ba da damar rustc don ba da tallafi ga gine-gine da haɓakawa da ke cikin GCC. Haɓakawa mai haɗawa yana nufin ikon yin amfani da janareta na lamba GCC a cikin rustc don gina rustc compiler kanta. A gefe mai amfani, wannan fasalin yana ba ku damar gina shirye-shiryen tsatsa don gine-gine waɗanda ba a taɓa samun tallafi a cikin rustc ba.
  • Ana samun sakin kayan aikin uutils coreutils 0.0.13, wanda a cikinsa ake haɓaka analog na kunshin GNU Coreutils, wanda aka sake rubutawa cikin yaren Rust. Coreutils ya zo tare da abubuwan amfani sama da ɗari, gami da nau'i, cat, chmod, chown, chroot, cp, kwanan wata, dd, echo, sunan mai masauki, id, ln, da ls. Manufar aikin ita ce ƙirƙirar madadin aiwatar da tsarin Coreutils, mai iya aiki akan dandamali na Windows, Redox da Fuchsia, da kuma rarraba ƙarƙashin lasisin MIT mai izini, maimakon lasisin kwafin GPL.

    Sabuwar sigar ta inganta aiwatar da abubuwan amfani da yawa, gami da ingantaccen dacewa na cp, dd, df, tsaga da tr kayan aiki tare da takwarorinsu na aikin GNU. An bayar da takaddun kan layi. Ana amfani da parser ɗin tafawa don warware gardama na layin umarni, wanda ya inganta fitarwa don tuta ta “-help” kuma ya ƙara goyan bayan taƙaitaccen umarni (misali, zaku iya saka “ls-col” maimakon “ls-color). ”).

source: budenet.ru

Add a comment