Rust 1.55 Programming Language Release

Pelepasan sistem basa programming Rust 1.55, diadegkeun ku proyék Mozilla, tapi ayeuna dimekarkeun dina naungan organisasi non-profit bebas Rust Foundation, geus diterbitkeun. Basa museurkeun kana kaamanan memori, nyadiakeun manajemén memori otomatis, jeung nyadiakeun sarana pikeun ngahontal paralelisme tugas tinggi tanpa ngagunakeun collector sampah atanapi runtime (runtime diréduksi jadi initialization dasar tur pamaliharaan perpustakaan baku).

Manajemén mémori otomatis Rust ngaleungitkeun kasalahan nalika ngamanipulasi pointer sareng ngajagi tina masalah anu timbul tina manipulasi mémori tingkat rendah, sapertos aksés ka daérah mémori saatos dibébaskeun, dereferensi pointer nol, overruns panyangga, jsb. Pikeun ngadistribusikaeun perpustakaan, mastikeun assembly jeung ngatur kagumantungan, proyék ieu ngamekarkeun manajer pakét Cargo. Repositori crates.io dirojong pikeun perpustakaan hosting.

Inovasi utama:

  • Manajer pakét kargo ngagaduhan kamampuan pikeun ngahijikeun kasalahan sareng peringatan anu aya nalika ngawangun. Nalika ngalaksanakeun paréntah sapertos "uji kargo" sareng "pariksa kargo --sadaya-sasaran" anu nyababkeun sababaraha ngawangun pakét kalayan parameter anu béda, pangguna ayeuna nunjukkeun kasimpulan kajadian masalah anu terus-terusan, sanés ditampilkeun. sababaraha warnings idéntik nalika ngawangun hal anu sarua sababaraha kali. $ kargo +1.55.0 cék —sadaya-sasaran Mariksa foo v0.1.0 warning: fungsi teu kungsi dipaké: 'foo' —> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = catetan: '#[warn (dead_code)]' on ku standar warning: 'foo' (lib) dihasilkeun 1 warning warning: 'foo' (lib test) dihasilkeun 1 warning (1 duplikat) Réngsé dev [unoptimized + debuginfo] target (s) dina 0.84s
  • The floating kode parsing titik dina perpustakaan baku geus dipindahkeun ka pamakéan gancang tur leuwih akurat algoritma Eisel-Lemire, nu geus ngumbar sababaraha masalah saméméhna observasi kalawan rounding na parsing angka kalawan angka nu gede ngarupakeun angka.
  • Kamampuhan pikeun nangtukeun rentang unclosed dina témplat geus stabilized ("X.. (“nol!”), 32.. => println!("nomer positip!"), }
  • Varian kasalahan dilegaan katutupan ku std :: io :: ErrorKind (ngagolongkeun kasalahan kana kategori sapertos NotFound sareng WouldBlock). Saméméhna, kasalahan nu teu cocog kana kategori nu geus aya murag kana ErrorKind:: Kategori séjén, nu ogé dipaké pikeun kasalahan dina kode pihak katilu. Ayeuna aya kategori internal anu misah ErrorKind :: Uncategorized pikeun kasalahan anu henteu pas kana kategori anu aya, sareng ErrorKind :: Kategori sanésna dugi ka kasalahan anu henteu lumangsung dina perpustakaan standar (fungsi perpustakaan standar anu mulangkeun io:: Kasalahan. henteu deui nganggo ErrorKind:: kategori Lain).
  • Bagian anyar tina API geus dipindahkeun ka kategori stabil, kaasup métode jeung palaksanaan Tret geus stabilized:
    • Kabeungkeut:: diklon
    • Solokan::as_str
    • IntoInnerError::into_error
    • IntoInnerError::into_parts
    • MaybeUninit:: assume_init_mut
    • MaybeUninit:: assume_init_ref
    • MaybeUninit :: nulis
    • susunan:: peta
    • ops :: ControlFlow
    • x86::_bittest
    • x86::_bittestandcomplement
    • x86::_bittestandreset
    • x86::_bittestandset
    • x86_64::_bittest64
    • x86_64::_bittestandcomplement64
    • x86_64::_bittestandreset64
    • x86_64::_bittestandset64
  • Atribut "const", nu nangtukeun kamungkinan ngagunakeun eta dina sagala konteks tinimbang konstanta, dipaké dina str::from_utf8_unchecked métode.
  • Tingkat katilu pangrojong parantos dilaksanakeun pikeun platform powerpc64le-unknown-freebsd. Tingkat katilu ngawengku rojongan dasar, tapi tanpa nguji otomatis, penerbitan resmi ngawangun, atawa mariksa naha kode bisa diwangun.

sumber: opennet.ru

Tambahkeun komentar