Mwepụta asụsụ mmemme nchara 1.73

Mwepụta nke asụsụ mmemme izugbe nke Rust 1.73, nke ọrụ Mozilla hiwere, mana nke emepụtara ugbu a n'okpuru nkwado nke otu nọọrọ onwe ya na-abụghị uru Rust Foundation, ka ebipụtala. Asụsụ ahụ na-elekwasị anya na nchekwa nchekwa ma na-enye ụzọ iji nweta ọrụ dị elu na parallelism ma na-ezere iji onye na-ekpofu ihe mkpofu na oge ịgba ọsọ (oge ọ na-agba ọsọ na-ebelata ka ọ bụrụ mmalite na nhazi nke ọbá akwụkwọ ọkọlọtọ).

Ụzọ ijikwa ebe nchekwa rust na-azọpụta onye nrụpụta site na njehie mgbe ị na-emegharị ihe nrịbama ma chebe onwe ya pụọ ​​​​na nsogbu ndị na-ebilite n'ihi njikwa ebe nchekwa dị ala, dị ka ịnweta ebe nchekwa mgbe a tọhapụrụ ya, iwepụ pointers null, buffer overruns, wdg. Iji kesaa ọba akwụkwọ, nye ihe na-ewuli elu ma jikwaa ịdabere, ọrụ ahụ na-emepụta onye njikwa ngwugwu Cargo. A na-akwado ebe nchekwa crates.io maka ọba akwụkwọ nnabata.

A na-enye nchekwa nchekwa na nchara n'oge a na-achịkọta site na ntụle ntụnye aka, idobe usoro nwe ihe, idobe oge ndụ ihe (scopes), na ịlele izi ezi nke ịnweta ebe nchekwa n'oge mmebe koodu. Nchara na-enyekwa nchebe pụọ na integer njupụta, na-achọ mmalite mmalite nke ụkpụrụ agbanwe agbanwe tupu eji ya, na-edozi njehie nke ọma n'ọbá akwụkwọ ọkọlọtọ, na-etinye echiche nke ntụgharị na mgbanwe na-adịghị agbanwe agbanwe na ndabara, na-enye akara static siri ike iji belata njehie ezi uche dị na ya.

Isi ihe ọhụrụ:

  • Ahaziri usoro ozi nke onye na-ahụ maka mkpọka mmemme (ụjọ) nke ndabara nyere. Ederede akọwapụtara na nnukwu "egwu!" A na-egosi ugbu a n'ahịrị dị iche na-enweghị akara ngụpụta, na-eme ka ozi ahụ dịkwuo mfe ịgụ na iwepụ mgbagwoju anya mgbe ọnụ ọgụgụ ndị akwụ ụgwọ dị ma ọ bụ kewaa n'ofe ọtụtụ ahịrị. fn main() {ka faịlụ = "ferris.txt"; ụjọ!("oh mba! {file:?} ahụghị!"); } E nwere threadi 'main' na-ama jijiji na 'oh mba! "ferris.txt" ahụghị!', src/main.rs:3:5 Eriri 'isi' tụrụ ụjọ na src/main.rs:3:5: oh mba! "ferris.txt" ahụghị!

    Mwepụta nke ozi egosiri mgbe a kpalitere macro “assert_eq” na “assert_ne” arụkwaghị ọrụ. fn main() {assert_eq!("🦀", "🐟", "ferris abụghị azụ"); } E nwere eri 'main' tụrụ ụjọ na 'assertion fail: `(ekpe == aka nri)` aka ekpe: `"🦀"`, aka nri: `"🐟"`: ferris abụghị azụ', src/main.rs: 2 :5 Eriri 'isi' tụrụ ụjọ na src/main.rs:2:5: nkwupụta 'aka ekpe == aka nri' dara: ferris abụghị azụ aka ekpe: "🦀" aka nri: "🐟"

  • Dị ka RFC 3184 si kwuo, agbakwunyela ikike ijikwa igodo nchekwa eri-Local (thread_local) ozugbo. > na LocalKey > site na iji get(), set (), take() na dochie () ụzọ, kama iji "na (| n'ime | ...)" mmechi, nke na-ewepụ mkpa maka koodu mbido ọzọ maka ndabara. ụkpụrụ akọwapụtara maka eri ọhụrụ mgbe ị na-eji nnukwu "thread_local!" eri_local! { ihe kwụ ọtọ: Cell > = Cell:: ọhụrụ(Vec:: ọhụrụ()); } fn f () {// bụ ihe.with(| i| i.set (vec![32, 1, 2])); // ghọrọ THINGS.set (vec![3, 1, 2]); // ... // e kwere v = IHE. with(| i| i.take ()); // ghọrọ ka v: Vec = IHE. were(); }
  • Atụgharịla akụkụ ọhụrụ nke API n'ụdị nke kwụsiri ike, gụnyere ụzọ na mmejuputa omume nke ejiri mesie ike:
    • Enweghi akara {integer} :: div_ceil
    • Enweghi akara {integer} :: next_multiple_of
    • Edebanyeghị aha {integer} :: check_next_multiple_of
    • std :: ffi:: Site naBytesUntilNulError
    • std:: os:: unix:: fs:: chown
    • std:: os:: unix:: fs:: fchown
    • std:: os:: unix:: fs:: lfchown
    • Igodo mpaghara:: >:: nweta
    • Igodo mpaghara:: >:: setịpụ
    • Igodo mpaghara:: >::were
    • Igodo mpaghara:: >:: dochie
    • Igodo mpaghara:: >> :: ya na agbaziri
    • Igodo mpaghara:: >> ya na_borrow_mut
    • Igodo mpaghara:: >:: setịpụ
    • Igodo mpaghara:: >::were
    • Igodo mpaghara:: >:: dochie
  • A na-eji àgwà "const", nke na-ekpebi ohere iji ya mee ihe n'ọnọdụ ọ bụla kama ịdịgidesi ike, na ọrụ:
    • rc:: adịghị ike:: ọhụrụ
    • sync :: adịghị ike :: ọhụrụ
    • NonNull:: as_ref
  • Onye nchịkọta ihe na-enye ndekọ nke ozi ụdị na ngalaba ".okwu", dị ka GCC na Clang.
  • Emejuputala ọkwa nkwado nke atọ maka nyiwe aarch64-unknown-teeos, csky-unknown-linux-gnuabiv2, riscv64-linux-android, riscv64gc-unknown-hermit, x86_64-unikraft-linux-musl na x86_64-unknown-linux. -ọhụụ. Ọkwa nke atọ gụnyere nkwado bụ isi, mana na-enweghị nnwale akpaaka, na-ewu ụlọ ọrụ na-ebipụta, ma ọ bụ lelee ma enwere ike iwu koodu ahụ.
  • Emejuputala ọkwa nke abụọ nke nkwado maka ikpo okwu ebumnuche wasm32-wasi-preview1-threads. Ọkwa nke abụọ nke nkwado gụnyere nkwa mgbakọ.

isi: opennet.ru

Tinye a comment