Rilis Bahasa Pemrograman Rust 1.52

Rilis bahasa pemrograman sistem Rust 1.52, 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:

  • Menghapus pengikatan pada urutan pelaksanaan perintah "cargo check" dan "cargo clippy". Sebelumnya, memanggil "cargo clippy" setelah "cargo check" tidak meluncurkan utilitas clippy (linter) karena kurangnya pemisahan cache untuk mode pemeriksaan ini. Sekarang masalah ini telah teratasi dan urutan pemanggilan β€œcargo clippy” dan β€œcargo check” tidak lagi menjadi masalah.
  • Bagian baru dari API telah dipindahkan ke kategori stabil, termasuk metode berikut yang telah distabilkan:
    • Argumen::as_str
    • karakter::maks
    • karakter::REPLACEMENT_CHARACTER
    • karakter::UNICODE_VERSION
    • karakter::decode_utf16
    • char::dari_digit
    • char::from_u32_tidak dicentang
    • karakter::dari_u32
    • irisan::partition_point
    • str::rsplit_once
    • str::split_once
  • Atribut β€œconst”, yang menentukan kemungkinan menggunakannya dalam konteks apa pun alih-alih konstanta, digunakan dalam metode:
    • char::len_utf8
    • char::len_utf16
    • char::to_ascii_uppercase
    • char::to_ascii_huruf kecil
    • char::eq_ignore_ascii_case
    • u8::to_ascii_uppercase
    • u8::to_ascii_huruf kecil
    • u8::eq_ignore_ascii_case
  • Menambahkan pemeriksaan lint unsafe_op_in_unsafe_fn untuk menentukan apakah kode tidak aman yang digunakan dalam fungsi tidak aman dibingkai oleh blok tidak aman.
  • Diperbolehkan untuk memasukkan pointer yang bisa berubah ke array ke dalam bentuk pointer ke tipe elemen array. biarkan mut x: [gunakan; 2] = [0, 0]; misalkan p = &mut x sebagai *mut usize; misalkan p = &mut x sebagai *const usize;
  • 9 cek baru telah ditambahkan ke clippy (linter).
  • Manajer paket kargo sekarang mendukung kolom β€œmanifest_path” di JSON untuk paket. Menambahkan dukungan untuk menentukan informasi lisensi dalam format SPDX 3.11 ke repositori crates.io.
  • Diperbolehkan untuk menentukan beberapa filter saat menjalankan pengujian, misalnya menjalankan "cargo test - foo bar" akan menjalankan semua pengujian yang cocok dengan topeng "foo" dan "bar".
  • Toolkit LLVM default telah diperbarui ke LLVM 12.
  • Dukungan tingkat ketiga telah diterapkan untuk platform s390x-unknown-linux-musl, riscv32gc-unknown-linux-musl, riscv64gc-unknown-linux-musl dan powerpc-unknown-openbsd. Tingkat ketiga melibatkan dukungan dasar, tetapi tanpa pengujian otomatis, publikasi versi resmi, dan verifikasi kemampuan pembuatan kode.

Sumber: opennet.ru

Tambah komentar