Basa pemrograman Rust 1.55 release

Rilis basa pemrograman sistem Rust 1.55, sing diadegake dening proyek Mozilla, nanging saiki dikembangake ing sangisore organisasi nirlaba independen Rust Foundation, wis diterbitake. Basa fokus ing safety memori, menehi Manajemen memori otomatis, lan menehi liya kanggo entuk podo tugas dhuwur tanpa nggunakake kolektor uwuh utawa runtime (runtime suda kanggo initialization dhasar lan pangopènan perpustakaan standar).

Manajemen memori otomatis Rust ngilangake kasalahan nalika manipulasi penunjuk lan nglindhungi saka masalah njedhul saka manipulasi memori tingkat kurang, kayata ngakses wilayah memori sawise wis dibebaske, null pointer dereferences, buffer overruns, etc. Kanggo nyebarake perpustakaan, mesthekake perakitan lan ngatur dependensi, proyek ngembangake manajer paket Cargo. Repositori crates.io didhukung kanggo hosting perpustakaan.

Inovasi utama:

  • Manajer paket kargo nduweni kemampuan kanggo nggabungake kesalahan duplikat lan bebaya sing kedadeyan sajrone mbangun. Nalika nindakake printah kayata "test kargo" lan "pemeriksaan kargo --all-targets" sing nyebabake macem-macem mbangun paket kanthi paramΓ¨ter sing beda-beda, pangguna saiki ditampilake ringkesan kedadeyan masalah sing bola-bali, tinimbang ditampilake. pirang-pirang bebaya sing padha nalika mbangun perkara sing padha bola-bali. $ kargo +1.55.0 mriksa β€”kabeh-target Priksa peringatan foo v0.1.0: fungsi ora tau digunakake: 'foo' β€”> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = cathetan: '#[warn(dead_code)]' kanthi bebaya standar: 'foo' (lib) ngasilake 1 bebaya peringatan: 'foo' (lib test) ngasilake 1 bebaya (1 duplikat) Rampung dev [ora dioptimalake + debuginfo] target (s) ing 0.84s
  • Kode parsing titik ngambang ing perpustakaan standar wis dipindhah kanggo nggunakake algoritma Eisel-Lemire luwih cepet lan akurat, kang wis mantun sawetara masalah sadurunge diamati karo dibunderakΓ© lan parsing nomer karo nomer akeh banget digit.
  • Kemampuan kanggo nemtokake kisaran sing ora ditutup ing cithakan wis distabilake ("X.." diinterpretasikake minangka rentang sing diwiwiti kanthi nilai X lan diakhiri kanthi nilai maksimum saka jinis integer): cocog x minangka u32 { 0 => println! (β€œnol!”), 1.. => println!("nomer positif!"), }
  • Varian kesalahan sing ditambahi ditutupi dening std::io::ErrorKind (nggolongake kesalahan menyang kategori kayata NotFound lan WouldBlock). SadurungΓ©, kasalahan sing ora cocog karo kategori sing wis ana tiba ing ErrorKind :: Kategori liyane, sing uga digunakake kanggo kesalahan ing kode pihak katelu. Saiki ana kategori internal sing kapisah ErrorKind :: Uncategorized kanggo kesalahan sing ora cocog karo kategori sing wis ana, lan ErrorKind :: Kategori liyane diwatesi kanggo kesalahan sing ora kedadeyan ing perpustakaan standar (fungsi perpustakaan standar sing ngasilake io :: Kesalahan. ora nggunakake ErrorKind :: kategori Liyane).
  • Bagean anyar saka API wis dipindhah menyang kategori stabil, kalebu cara lan implementasine sifat wis stabil:
    • Bound:: kloning
    • Saluran::as_str
    • IntoInnerError::into_error
    • IntoInnerError::into_parts
    • MaybeUninit:: assume_init_mut
    • MaybeUninit:: assume_init_ref
    • MungkinUninit:: nulis
    • larik:: peta
    • ops::ControlFlow
    • x86::_paling
    • x86::_bittestandcomplement
    • x86::_bittestandreset
    • x86::_bittestandset
    • x86_64::_bittest64
    • x86_64::_bittestandcomplement64
    • x86_64::_bittestandreset64
    • x86_64::_bittestandset64
  • Atribut "const", sing nemtokake kemungkinan nggunakake ing konteks apa wae tinimbang konstanta, digunakake ing metode str :: from_utf8_unchecked.
  • Dhukungan tingkat katelu wis dileksanakake kanggo platform powerpc64le-unknown-freebsd. Tingkat katelu kalebu dhukungan dhasar, nanging tanpa tes otomatis, nerbitake bangunan resmi, utawa mriksa manawa kode kasebut bisa dibangun.

Source: opennet.ru

Add a comment