Rilis Bahasa Pemrograman Rust 1.69

Rilis bahasa pemrograman tujuan umum Rust 1.69, 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 mengimplementasikan deteksi peringatan yang dapat diselesaikan secara otomatis, dan menghasilkan rekomendasi yang sesuai untuk menjalankan β€œcargo fix” atau β€œcargo clippy -fix”. peringatan: impor yang tidak digunakan: 'std::hash::Hash' β€”> src/main.rs:1:5 | 1 | gunakan std::hash::Hash; | ^^^^^^^^^^^^^^^ | = catatan: '#[warn(unused_imports)]' aktif secara default peringatan: 'foo' (bin "foo") menghasilkan 1 peringatan (jalankan 'cargo fix β€”bin "foo"' untuk menerapkan 1 saran)
  • Cargo telah menambahkan output rekomendasi untuk menggunakan perintah β€œcargo add” ketika mencoba menginstal perpustakaan dengan perintah β€œcargo install”.
  • Untuk mengurangi waktu kompilasi, penyertaan informasi debug dalam skrip build telah dihentikan secara default. Jika skrip build berhasil dijalankan, perubahan tidak akan menghasilkan perbedaan yang terlihat, namun jika terjadi kegagalan, dump traceback akan berisi lebih sedikit informasi. Untuk mengembalikan perilaku lama ke Cargo.toml Anda harus menambahkan: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
  • Bagian baru dari API telah dipindahkan ke kategori stabil, termasuk metode dan penerapan sifat yang telah distabilkan:
    • CStr::dari_bytes_until_nul
    • inti::ffi::FromBytesUntilNulError
  • Atribut β€œconst”, yang menentukan kemungkinan menggunakannya dalam konteks apa pun alih-alih konstanta, digunakan dalam fungsi:
    • SocketAddr::baru
    • SocketAddr::ip
    • SocketAddr::port
    • SocketAddr::is_ipv4
    • SocketAddr::is_ipv6
    • SocketAddrV4::baru
    • SocketAddrV4::ip
    • SocketAddrV4::port
    • SocketAddrV6::baru
    • SocketAddrV6::ip
    • SocketAddrV6::port
    • SocketAddrV6::flowinfo
    • SocketAddrV6::scope_id
  • Menambahkan kemampuan untuk menggunakan tanda benar dan salah dalam argumen kompiler.

Sumber: opennet.ru

Tambah komentar