Rilis Bahasa Pemrograman Rust 1.67

Rilis bahasa pemrograman tujuan umum Rust 1.67, yang didirikan oleh proyek Mozilla, tetapi sekarang dikembangkan di bawah naungan organisasi nirlaba independen Rust Foundation, telah diterbitkan. Bahasa berfokus pada keamanan memori dan menyediakan sarana untuk mencapai paralelisme pekerjaan yang tinggi sambil menghindari penggunaan pengumpul sampah dan runtime (runtime dikurangi menjadi inisialisasi dasar dan pemeliharaan perpustakaan standar).

Metode penanganan memori Rust menyelamatkan pengembang dari kesalahan saat memanipulasi pointer dan melindungi dari masalah yang muncul karena penanganan 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.

Keamanan memori disediakan di Rust pada waktu kompilasi melalui pemeriksaan referensi, melacak kepemilikan objek, melacak masa pakai objek (cakupan), dan menilai kebenaran akses memori selama eksekusi kode. Rust juga memberikan perlindungan terhadap integer overflow, membutuhkan inisialisasi wajib dari nilai variabel sebelum digunakan, menangani kesalahan dengan lebih baik di perpustakaan standar, menerapkan konsep referensi dan variabel yang tidak dapat diubah secara default, menawarkan pengetikan statis yang kuat untuk meminimalkan kesalahan logis.

Inovasi utama:

  • Untuk fungsi async dengan Future::Output, sekarang dimungkinkan untuk menentukan anotasi "#[must_use]" yang menyertakan peringatan jika nilai kembalian diabaikan, yang membantu mengidentifikasi kesalahan yang disebabkan oleh asumsi bahwa fungsi akan mengubah nilai daripada mengembalikan nilai baru. #[must_use] async fn bar() -> u32 { 0 } async fn pemanggil() { bar().menunggu; } peringatan: keluaran masa depan yang tidak terpakai dikembalikan oleh `bar` yang harus digunakan β€”> src/lib.rs:5:5 | 5 | bar().menunggu; | ^^^^^^^^^^^ | = catatan: `#[peringatkan(unused_must_use)]` aktif secara default
  • Implementasi antrian FIFO std::sync::mpsc (konsumen tunggal multi-produsen) telah diperbarui, yang telah dialihkan menggunakan modul saluran crossbeam dengan tetap mempertahankan API sebelumnya. Implementasi baru ini dibedakan dengan penyelesaian sejumlah masalah, kinerja yang lebih tinggi, dan pemeliharaan kode yang disederhanakan.
  • Bagian baru dari API telah dipindahkan ke kategori stabil, termasuk metode dan penerapan sifat yang telah distabilkan:
    • {integer}::checked_ilog
    • {bilangan bulat}::checked_ilog2
    • {bilangan bulat}::checked_ilog10
    • {bilangan bulat}::ilog
    • {bilangan bulat}::ilog2
    • {bilangan bulat}::ilog10
    • BukanZeroU*::ilog2
    • BukanZeroU*::ilog10
    • BukanNol*::BIT
  • Atribut β€œconst”, yang menentukan kemungkinan menggunakannya dalam konteks apa pun alih-alih konstanta, digunakan dalam fungsi:
    • karakter::dari_u32
    • char::dari_digit
    • char::ke_digit
    • inti::char::from_u32
    • inti::char::dari_digit
  • Dukungan tingkat ketiga telah diterapkan untuk penggunaan Rust di kernel Linux (linuxkernel), serta untuk Sony PlayStation 1 (mipsel-sony-psx), PowerPC dengan AIX (powerpc64-ibm-aix), QNX Neutrino RTOS ( platform aarch64-unknown-nto-) qnx710, x86_64-pc-nto-qnx710). Tingkat ketiga melibatkan dukungan dasar, tetapi tanpa pengujian otomatis, penerbitan versi resmi, atau pemeriksaan apakah kode dapat dibuat.

Selain itu, kami dapat mencatat publikasi patch oleh ARM yang memungkinkan penggunaan bahasa Rust untuk mengembangkan driver dan modul kernel Linux yang dirakit untuk sistem berdasarkan arsitektur AArch64.

Sumber: opennet.ru

Tambah komentar