Harshen shirye-shiryen tsatsa 1.58

An buga yaren shirye-shirye na gabaɗaya Rust 1.58, 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, yana ba da sarrafa ƙwaƙwalwar ajiya ta atomatik, kuma yana ba da hanyoyin samun daidaiton ɗawainiya mai girma ba tare da yin 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:

  • A cikin tubalan tsara layi, baya ga ikon da aka samu a baya don musanya masu canji da aka jera a sarari bayan layi ta lamba da suna, ana aiwatar da ikon musanya abubuwan gano sabani ta ƙara kalmar “{identifier}” zuwa layin. Misali: // Ginin da aka tallafa a baya: println!("Sannu, {}!", get_person()); println! ("Sannu, {0}!", samun_mutum()); println! ("Hello, {mutum}!", mutum = samun_mutum ()); // yanzu za ku iya saka mutum = get_person(); println! ("Hello, {mutum}!");

    Hakanan za'a iya ƙayyade masu ganowa kai tsaye a cikin zaɓuɓɓukan tsarawa. bari (nisa, daidaici) = samun_format (); don (suna, ci) a cikin get_scores () {println!("{name}: {maki: nisa$.daidaici$}"); }

    Sabuwar maye yana aiki a cikin duk macros waɗanda ke goyan bayan ma'anar tsarin kirtani, ban da macro "firgita!" a cikin nau'ikan 2015 da 2018 na Yaren Rust, wanda a cikin abin tsoro!

  • Halin std :: tsari :: Tsarin umarni akan dandamalin Windows an canza shi ta yadda lokacin aiwatar da umarni, saboda dalilai na tsaro, baya neman fayilolin aiwatarwa a cikin kundin adireshi na yanzu. An cire kundin adireshi na yanzu saboda ana iya amfani da shi don aiwatar da lamba mara kyau idan shirye-shirye suna gudana a cikin kundayen adireshi marasa amana (CVE-2021-3013). Sabuwar dabarar gano da za a iya aiwatarwa ta ƙunshi bincika kundayen Rust, kundin aikace-aikacen, tsarin tsarin Windows, da kundayen adireshi da aka kayyade a cikin canjin yanayi na PATH.
  • Madaidaicin ɗakin karatu ya faɗaɗa adadin ayyukan da aka yiwa alama "#[must_use]" don ba da gargaɗi idan aka yi watsi da ƙimar dawowa, wanda ke taimakawa gano kurakuran da aka haifar ta hanyar ɗauka cewa aikin zai canza ƙima maimakon dawo da sabon ƙima.
  • An koma wani sabon yanki na API zuwa nau'in barga, gami da hanyoyin da aiwatar da halaye an daidaita su:
    • Metadata ::is_symlink
    • Hanya ::is_symlink
    • {integer} :: saturating_div
    • Zabin :: unwrap_ba a duba ba
    • Sakamako:: unwrap_ba a duba ba
    • Sakamako ::unwrap_err_unwrap
  • Ana amfani da sifa na "const", wanda ke ƙayyade yiwuwar amfani da shi a cikin kowane mahallin maimakon akai-akai, a cikin ayyuka:
    • Duration::sabo
    • Duration:: an duba_add
    • Duration::saturating_add
    • Duration:: an duba_sub
    • Duration::saturating_sub
    • Duration :: checked_mul
    • Duration::saturating_mul
    • Duration:: an duba_div
  • An ba da izinin soke ma'anar "*const T" a cikin mahallin "const".
  • A cikin manajan fakitin Cargo, an ƙara filin rust_version a cikin metadata na fakitin, kuma an ƙara zaɓin "--message-format" zuwa umarnin "saka kaya".
  • Mai tarawa yana aiwatar da tallafi don tsarin kariya na CFI (Control Flow Integrity), wanda ke ƙara bincike kafin kowane kira kai tsaye don gano wasu nau'ikan halayen da ba a bayyana ba wanda zai iya haifar da keta tsarin aiwatarwa na yau da kullun (gudanarwar sarrafawa) sakamakon amfani da fa'idodi waɗanda ke canza masu nuni da aka adana a ƙwaƙwalwar ajiya akan ayyuka.
  • Mai tarawa ya ƙara goyan baya ga nau'ikan 5 da 6 na tsarin kwatanta ɗaukar hoto na LLVM, wanda aka yi amfani da shi don kimanta kewayon lambar yayin gwaji.
  • A cikin mai tarawa, an ɗaga buƙatun mafi ƙarancin sigar LLVM zuwa LLVM 12.
  • Mataki na uku na tallafi don x86_64-ba a san ko dandali ba da aka aiwatar. Mataki na uku ya ƙunshi tallafi na asali, amma ba tare da gwaji ta atomatik ba, buga abubuwan ginawa na hukuma, da tabbatar da gina lambar.

Bugu da ƙari, za mu iya lura da bugun Microsoft na sakin Rust don ɗakunan karatu na Windows 0.30, wanda ke ba ku damar amfani da harshen Rust don haɓaka aikace-aikace na Windows OS. Saitin ya ƙunshi fakiti guda biyu (windows da windows-sys), ta inda zaku iya samun damar Win API a cikin shirye-shiryen Rust. An samar da lambar don tallafin API da ƙarfi daga metadata da ke kwatanta API ɗin, wanda ke ba ku damar aiwatar da tallafi ba kawai don kiran Win API ɗin da ke wanzu ba, amma don kiran da zai bayyana a gaba. Sabuwar sigar tana ƙara tallafi don dandamalin manufa na UWP (Universal Windows Platform) kuma yana aiwatar da nau'ikan Handle da Debug.

source: budenet.ru

Add a comment