Rilis Bahasa Pemrograman Rust 1.62

Rilis bahasa pemrograman tujuan umum Rust 1.62, 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:

  • Manajer paket “cargo” menawarkan perintah “tambah”, yang memungkinkan Anda menambahkan dependensi baru ke manifes Cargo.toml atau mengubah dependensi yang ada dari baris perintah. Perintah ini juga memungkinkan Anda untuk menentukan masing-masing fitur dan versi, misalnya: cargo add serde —features descend cargo add nom@5
  • Menambahkan kemampuan untuk menggunakan “#[derive(Default)]” dengan enum yang opsi defaultnya ditentukan menggunakan atribut “#[default]”. #[derive(Default)] enum Mungkin { #[default] Tidak ada, Sesuatu(T), }
  • Pada platform Linux, implementasi mekanisme sinkronisasi Mutex yang lebih ringkas dan cepat digunakan, berdasarkan penggunaan futex yang disediakan oleh kernel Linux. Berbeda dengan implementasi yang digunakan sebelumnya berdasarkan perpustakaan pthreads, versi baru hanya menggunakan 5 byte, bukan 40 untuk menyimpan status Mutex. Demikian pula, mekanisme penguncian Condvar dan RwLock telah ditransfer ke futex.
  • Dukungan tingkat kedua untuk platform target x86_64-unknown-none telah diterapkan, dirancang untuk menghasilkan file yang dapat dieksekusi yang dapat bekerja tanpa sistem operasi. Misalnya, platform target yang ditentukan dapat digunakan saat menulis komponen kernel. Dukungan tingkat kedua melibatkan jaminan perakitan.
  • Dukungan tingkat ketiga telah diterapkan untuk platform aarch64-pc-windows-gnullvm dan x86_64-pc-windows-gnullvm. Tingkat ketiga melibatkan dukungan dasar, tetapi tanpa pengujian otomatis, penerbitan versi resmi, atau pemeriksaan apakah kode dapat dibuat.
  • Bagian baru dari API telah dipindahkan ke kategori stabil, termasuk metode dan penerapan sifat yang telah distabilkan:
    • bool::kemudian_some
    • f32::total_cmp
    • f64::total_cmp
    • Stdin::garis
    • windows::CommandExt::raw_arg
    • impl nilai default untuk AssertUnwindSafe
    • Dari > untuk RC
    • Dari > untuk Arc<[u8]>
    • FusedIterator untuk EncodeWide

    Sumber: opennet.ru

Tambah komentar