Rust 1.67 Kutulutsa Chilankhulo cha Mapulogalamu

Chilankhulo chothandizira anthu ambiri Rust 1.67, chomwe chinakhazikitsidwa ndi polojekiti ya Mozilla koma tsopano chapangidwa mothandizidwa ndi bungwe lodziyimira pawokha lopanda phindu la Rust Foundation, chatulutsidwa. Chilankhulochi chimayang'ana kwambiri pachitetezo cha kukumbukira ndipo chimapereka njira zopezera kufananiza kwakukulu kwa ntchito ndikupewa kugwiritsa ntchito chotolera zinyalala ndi nthawi yothamanga (nthawi yothamanga imachepetsedwa kuti ikhale yoyambira ndikukonza laibulale yokhazikika).

Njira zogwiritsira ntchito kukumbukira za Rust zimapulumutsa wopanga ku zolakwika pamene akuwongolera zolozera ndikuteteza ku zovuta zomwe zimadza chifukwa cha kukumbukira kwapang'onopang'ono, monga kupeza malo okumbukira atamasulidwa, kuchotsa zolozera zopanda pake, ma buffer overruns, etc. Kugawira malaibulale, kupereka zomanga ndi kusamalira zodalira, pulojekitiyi imapanga woyang'anira phukusi la Cargo. Malo osungiramo crates.io amathandizidwa kuti azisunga malaibulale.

Kutetezedwa kwa Memory kumaperekedwa mu Rust panthawi yophatikiza kudzera pakuwunika, kuyang'anira umwini wa chinthu, kuyang'anira nthawi ya moyo wa chinthu (ma scopes), ndikuwunika kulondola kwa kukumbukira kukumbukira panthawi yopanga ma code. Dzimbiri limaperekanso chitetezo ku kusefukira kwazinthu zonse, kumafuna kukhazikitsidwa kovomerezeka kwa zinthu zosinthika musanagwiritse ntchito, kuwongolera zolakwika bwino mulaibulale yokhazikika, kumagwiritsa ntchito lingaliro la maumboni osasinthika ndi zosintha mwachisawawa, kumapereka zilembo zolimba kuti muchepetse zolakwika zomveka.

Zatsopano zazikulu:

  • Kwa ntchito za async ndi Future:: Output, tsopano ndizotheka kutchula mawu akuti "#[must_use]" omwe ali ndi chenjezo ngati mtengo wobwezera unyalanyazidwa, zomwe zimathandiza kuzindikira zolakwika zomwe zimachitika chifukwa choganiza kuti ntchitoyi isintha zikhalidwe. m'malo mobwezera mtengo watsopano. #[must_use] async fn bar() -> u32 {0} async fn caller() {bar().await; } chenjezo: zomwe sizinagwiritsidwe ntchito zamtsogolo zomwe zabwezedwa ndi `bar` zomwe ziyenera kugwiritsidwa ntchito β€”> src/lib.rs:5:5 | 5 | bar () dikirani; | | ^^^^^^^^^^^^ | = dziwani: `#[chenjezo(osagwiritsidwa_must_use)]` mwachisawawa
  • Kukhazikitsidwa kwa FIFO queues std::sync::mpsc (multi-producer single-consumer) yasinthidwa, yomwe yasinthidwa kuti igwiritse ntchito gawo la crossbeam-channel posunga API yapitayi. Kukhazikitsa kwatsopano kumasiyanitsidwa ndi kuthetsa mavuto angapo, magwiridwe antchito apamwamba komanso kukonza kosavuta.
  • Gawo latsopano la API lasunthidwa ku gulu lokhazikika, kuphatikiza njira ndi kukhazikitsidwa kwa machitidwe akhazikika:
    • {integer}::checked_ilog
    • {integer}::checked_ilog2
    • {integer}::checked_ilog10
    • {integer}::ilog
    • {integer}::ilog2
    • {integer}::ilog10
    • NonZeroU*::ilog2
    • NonZeroU*::ilog10
    • NonZero*::BITS
  • Lingaliro la "const", lomwe limatsimikizira kuthekera kogwiritsa ntchito mwanjira iliyonse m'malo mwa zokhazikika, limagwiritsidwa ntchito muzochita:
    • chithunzi::ku_u32
    • char::kuchokera_nambala
    • char::to_digit
    • pachimake::char::from_u32
    • pachimake::char::kuchokera_nambala
  • Gawo lachitatu lothandizira lakhazikitsidwa pogwiritsa ntchito Rust mu Linux kernel (linuxkernel), komanso Sony PlayStation 1 (mipsel-sony-psx), PowerPC yokhala ndi AIX (powerpc64-ibm-aix), QNX Neutrino RTOS ( aarch64-osadziwika-kwa-) nsanja qnx710, x86_64-pc-nto-qnx710). Mulingo wachitatu umakhudzanso thandizo loyambira, koma popanda kuyesa kokha, kusindikiza kwa boma, kapena kuwona ngati code ingamangidwe.

Kuphatikiza apo, titha kuzindikira kusindikizidwa kwa ARM kwa zigamba zomwe zimalola kugwiritsa ntchito chilankhulo cha Dzimbiri kupanga madalaivala ndi ma module a Linux kernel omwe amasonkhanitsidwa pamakina otengera kamangidwe ka AArch64.

Source: opennet.ru

Kuwonjezera ndemanga