Puo ea Rust programming 1.67 tokollo

Ho lokolloa ha puo ea lenaneo la Rust 1.67 ka kakaretso, e thehiloeng ke morero oa Mozilla, empa hona joale e ntlafalitsoeng ka tlas'a ts'ebetso ea mokhatlo o ikemetseng o sa etseng phaello oa Rust Foundation, e hatisitsoe. Puo e shebana le ts'ireletso ea mohopolo 'me e fana ka mekhoa ea ho finyella mosebetsi o phahameng oa ho ts'oara mosebetsi ha o ntse o qoba ho sebelisoa ha moqoqo oa lithōle le nako ea ho sebetsa (nako ea ho sebetsa e fokotsehile ho qala ho qala le ho boloka laebrari e tloaelehileng).

Mekhoa ea ho sebetsana le memori ea Rust e boloka moqapi ho tsoa liphosong ha a laola lintlha le ho sireletsa khahlanong le mathata a hlahang ka lebaka la ho tšoara memori ea boemo bo tlaase, joalo ka ho fumana sebaka sa memori ka mor'a hore e lokolloe, ho tlosa li-null pointer, buffer overruns, joalo-joalo. Ho aba lilaebrari, ho fana ka meaho le ho laola litšepe, projeke e nts'etsapele mookameli oa thepa ea Cargo. Sebaka sa polokelo ea crates.io se tšehetsoa bakeng sa lilaebrari tse amohelang batho.

Tšireletseho ea memori e fanoa ka Rust ka nako ea ho bokella ka ho hlahloba litšupiso, ho boloka tlaleho ea botho ba ntho, ho boloka tlaleho ea bophelo ba ntho (scopes), le ho lekola ho nepahala ha phihlello ea mohopolo nakong ea ts'ebetso ea khoutu. Rust e boetse e fana ka ts'ireletso khahlano le phallo e felletseng, e hloka ho qalisoa ha boleng bo fapaneng pele e sebelisoa, e sebetsana le liphoso hamolemo laebraring e tloaelehileng, e sebelisa mohopolo oa litšupiso tse ke keng tsa fetoha le mefuta e fapaneng ka mokhoa o ikhethileng, e fana ka ho thaepa ho tiileng ho fokotsa liphoso tse utloahalang.

Litlhahiso tse ka sehloohong:

  • Bakeng sa mesebetsi ea async e nang le Bokamoso::Output, joale hoa khonahala ho hlakisa "#[tla_sebelisa]" litlatsetso tse kenyelletsang temoso haeba boleng ba ho khutla bo hlokomolohuoa, e thusang ho tseba liphoso tse bakiloeng ke maikutlo a hore tšebetso e tla fetola boleng. ho e-na le ho khutlisa boleng bo bocha. #[tla_se_sebedisa] async fn bar() -> u32 {0} async fn caller() {bar().await; } temoso: tlhahiso e sa sebelisoeng ea bokamoso e khutlisitsoe ke `bar` e tlamehang ho sebelisoa —> src/lib.rs:5:5 | 5 | bar() emela; | ^^^^^^^^^^^^ | = hlokomela: `#[hlokomela(e sa sebelisoe_e tlameha_e tlameha ho sebelisoa)]` e butsoe ka ho sa feleng
  • Ts'ebetsong ea FIFO queues std::sync::mpsc (multi-producer single-consumer) e nchafalitsoe, e fetoletsoeng ho sebelisa mochine oa crossbeam-channel ha o ntse o boloka API e fetileng. Ts'ebetsong e ncha e khetholloa ka ho rarolla mathata a mangata, ts'ebetso e phahameng le tlhokomelo e nolofalitsoeng ea khoutu.
  • Karolo e ncha ea API e fetiselitsoe sehlopheng sa ba tsitsitseng, ho kenyelletsa le mekhoa le ts'ebetsong ea mekhoa e tsitsitseng:
    • {integer}::checked_ilog
    • {integer}::checked_ilog2
    • {integer}::checked_ilog10
    • {integer}::ilog
    • {integer}::ilog2
    • {integer}::ilog10
    • NonZeroU*::ilog2
    • NonZeroU*::ilog10
    • NonZero*::BITS
  • Sebopeho sa "consst", se khethollang monyetla oa ho se sebelisa maemong afe kapa afe ho fapana le li-constants, se sebelisoa mesebetsing:
    • Char::ho tloha_u32
    • char::ho tloha_digit
    • char::ho_dijiti
    • mantlha::char::from_u32
    • mantlha::char::ho tloha_digit
  • Karolo ea boraro ea ts'ehetso e kentsoe ts'ebetsong bakeng sa ho sebelisa Rust ho Linux kernel (linuxkernel), hammoho le Sony PlayStation 1 (mipsel-sony-psx), PowerPC e nang le AIX (powerpc64-ibm-aix), QNX Neutrino RTOS ( aarch64-tse sa tsejoeng-ho-) liforomo qnx710, x86_64-pc-nto-qnx710). Boemo ba boraro bo kenyelletsa ts'ehetso ea mantlha, empa ntle le tlhahlobo ea boiketsetso, meaho ea semmuso ea phatlalatso, kapa ho hlahloba hore na khoutu e ka hahuoa.

Ho feta moo, re ka hlokomela phatlalatso ea ARM ea li-patches tse lumellang tšebeliso ea puo ea Rust ho nts'etsapele bakhanni le li-module tsa Linux kernel tse bokelletsoeng bakeng sa lits'ebetso tse ipapisitseng le meralo ea AArch64.

Source: opennet.ru

Eketsa ka tlhaloso