Rilis Bahasa Pemrograman Rust 1.55

Rilis bahasa pemrograman sistem Rust 1.55, yang didirikan oleh proyek Mozilla, tetapi sekarang dikembangkan di bawah naungan organisasi nirlaba independen Rust Foundation, telah diterbitkan. Bahasa ini berfokus pada keamanan memori, menyediakan manajemen memori otomatis, dan menyediakan sarana untuk mencapai paralelisme tugas yang tinggi tanpa menggunakan pengumpul sampah atau waktu proses (waktu proses dikurangi menjadi inisialisasi dasar dan pemeliharaan perpustakaan standar).

Manajemen memori otomatis Rust menyelamatkan pengembang dari kesalahan saat memanipulasi pointer dan melindungi dari masalah yang muncul karena manipulasi memori tingkat rendah, seperti mengakses area memori setelah dibebaskan, dereferencing null pointer, buffer overruns, dll. Untuk mendistribusikan pustaka, menyediakan build, dan mengelola dependensi, proyek mengembangkan manajer paket Cargo. Repositori crates.io didukung untuk hosting perpustakaan.

Inovasi utama:

  • Manajer paket Cargo memiliki kemampuan untuk menggabungkan kesalahan duplikat dan peringatan yang terjadi selama pembangunan. Saat menjalankan perintah seperti "cargo test" dan "cargo check --all-targets" yang menghasilkan beberapa build paket dengan parameter berbeda, pengguna kini diperlihatkan ringkasan terjadinya masalah yang berulang, alih-alih ditampilkan beberapa peringatan identik ketika membuat hal yang sama berulang kali.file. $ kargo +1.55.0 check β€”semua target Memeriksa peringatan foo v0.1.0: fungsi tidak pernah digunakan: 'foo' β€”> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = catatan: '#[warn(dead_code)]' aktif secara default peringatan: 'foo' (lib) menghasilkan 1 peringatan peringatan: 'foo' (uji lib) menghasilkan 1 peringatan (1 duplikat) Target dev [tidak dioptimalkan + debuginfo] selesai (s) dalam 0.84 detik
  • Kode penguraian floating point di perpustakaan standar telah dipindahkan untuk menggunakan algoritma Eisel-Lemire yang lebih cepat dan akurat, yang telah menyelesaikan beberapa masalah yang diamati sebelumnya dengan pembulatan dan penguraian angka dengan jumlah digit yang sangat besar.
  • Kemampuan untuk menentukan rentang yang tidak tertutup dalam templat telah distabilkan (β€œX..” diinterpretasikan sebagai rentang yang dimulai dengan nilai X dan diakhiri dengan nilai maksimum tipe integer): cocokkan x sebagai u32 { 0 => println! (β€œnol!”), 1.. => println!("bilangan positif!"), }
  • Varian kesalahan yang diperluas dicakup oleh std::io::ErrorKind (mengklasifikasikan kesalahan ke dalam kategori seperti NotFound dan CouldBlock). Sebelumnya, kesalahan yang tidak sesuai dengan kategori yang ada termasuk dalam kategori ErrorKind::Other, yang juga digunakan untuk kesalahan dalam kode pihak ketiga. Sekarang ada kategori internal terpisah ErrorKind::Uncategorized untuk kesalahan yang tidak sesuai dengan kategori yang ada, dan kategori ErrorKind::Other terbatas pada kesalahan yang tidak terjadi di perpustakaan standar (fungsi perpustakaan standar yang mengembalikan io::Error tidak lagi menggunakan ErrorKind:: kategori Lainnya).
  • Bagian baru dari API telah dipindahkan ke kategori stabil, termasuk metode dan penerapan sifat yang telah distabilkan:
    • Terikat :: kloning
    • Tiriskan::as_str
    • IntoInnerError::into_error
    • IntoInnerError::into_parts
    • MungkinUninit::assume_init_mut
    • MungkinUninit::assume_init_ref
    • MungkinUninit::tulis
    • larik::peta
    • ops::ControlFlow
    • x86::_teruji
    • x86::_bittestandcomplement
    • x86::_bittestandreset
    • x86::_bittestandset
    • x86_64::_bittest64
    • x86_64::_bittestandcomplement64
    • x86_64::_bittestandreset64
    • x86_64::_bittestandset64
  • Atribut β€œconst”, yang menentukan kemungkinan menggunakannya dalam konteks apa pun alih-alih konstanta, digunakan dalam metode str::from_utf8_unchecked.
  • Dukungan tingkat ketiga telah diterapkan untuk platform powerpc64le-unknown-freebsd. Tingkat ketiga melibatkan dukungan dasar, tetapi tanpa pengujian otomatis, penerbitan versi resmi, atau pemeriksaan apakah kode dapat dibuat.

Sumber: opennet.ru

Tambah komentar