Rust 1.99.0 Dirilis. Microsoft Menjadikan Rust sebagai Bahasa Pemrograman Utama.

Bahasa pemrograman Rust 1.99, yang didirikan oleh proyek Mozilla tetapi kini dikembangkan di bawah naungan Rust Foundation, sebuah lembaga nirlaba independen, telah dirilis. Bahasa ini berfokus pada keamanan memori dan menyediakan perangkat untuk mencapai paralelisme eksekusi tugas yang tinggi, tanpa menggunakan garbage collector dan runtime (runtime disederhanakan menjadi inisialisasi dasar dan pemeliharaan pustaka standar).

Metode manajemen memori Rust dirancang untuk menghilangkan kesalahan dalam manipulasi pointer dan melindungi dari masalah yang muncul dari manajemen memori tingkat rendah, seperti mengakses memori setelah dibebaskan, melakukan dereferensi pointer null, buffer overrun, dan sebagainya. Proyek ini sedang mengembangkan manajer paket Cargo untuk mendistribusikan pustaka, memfasilitasi proses build, dan mengelola dependensi. Repositori crates.io dikelola untuk menampung pustaka.

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:

  • Rust sekarang memungkinkan Anda membuat fungsi variadik yang diekspor untuk dipanggil dari proyek C (C ABI). Elemen terakhir dari daftar parameter dalam fungsi tersebut dapat berupa konstruksi "...", yang ditangani di Rust menggunakan tipe khusus, VaList, yang bekerja mirip dengan va_list di C. unsafe extern "C" fn sum(mut args: ...) -> i32 { let a = unsafe { args.next_arg:: () }; let b = unsafe { args.next_arg:: () }; a + b } fn foo() -> i32 { unsafe { sum(0i32, 2i32) } }
  • Fungsi Layout::for_value_raw, mem::size_of_val_raw, dan mem::align_of_val_raw telah distabilkan untuk memungkinkan penentuan ukuran dan penyelarasan pointer mentah secara aman, termasuk saat menggunakan tipe berukuran dinamis seperti slice, tanpa perlu membuat referensi data.
  • Dokumentasi sekarang merekomendasikan untuk menghindari pembebasan memori yang direferensikan secara statis dengan masa pakai tak terbatas (&'static) melalui panggilan ke Box::leak (round-trip unleaking), karena tindakan ini berpotensi menyebabkan masalah karena ketidakkompatibilitas dengan optimasi kompiler di masa mendatang dan mekanisme alokasi memori yang dapat dipasang. Alih-alih membuat referensi statis untuk transfer kepemilikan sementara, disarankan untuk menggunakan pointer mentah, misalnya, melalui panggilan ke Box::into_non_null.
  • Bagian baru dari API telah dipindahkan ke kategori stabil, termasuk metode dan penerapan sifat yang telah distabilkan:
    • IntoIterator untuk Box<[T; N]>
    • IntoIterator untuk &Box<[T; N]>
    • IntoIterator untuk &mut Box<[T; N]>
    • VecDeque::retain_back
    • core::ffi::VaList
    • Kotak::masuk_non_null
    • Kotak::dari_non_null
    • Vektor::menjadi_bagian
    • Vektor::dari_bagian
    • core::mem::size_of_val_raw
    • core::mem::align_of_val_raw
    • core::alloc::Layout::for_value_raw
    • String::from_utf8_lossy_owned
    • string::FromUtf8Error::into_utf8_lossy
    • FusedIterator untuk StepBy
    • std::fs::set_times
    • std::fs::set_times_nofollow
  • Manajer paket Cargo kini memiliki profil "debug" bawaan baru, mirip dengan profil "dev" (kemampuan debug dan pengembangan direncanakan akan dipisahkan di masa mendatang). Kompilasi inkremental dinonaktifkan secara default saat membangun di CI.
  • Platform target riscv64-unknown-linux-musl telah dipindahkan ke level dukungan 2, yang memberikan jaminan pembangunan tetapi tidak memberikan jaminan lulus rangkaian pengujian.

Selain itu, kami ingin menyoroti proyek dan acara yang baru saja diumumkan terkait Rust:

  • Microsoft telah meningkatkan status Rust menjadi bahasa Tier 1 dan akan memberikan dukungan penuh untuknya di semua tahap pengembangan di dalam perusahaan. Sebelumnya, dukungan Tier 1 diberikan untuk C++, C#, dan TypeScript. Rust sudah digunakan di lebih dari 100 repositori Microsoft. Di antara hal-hal lain, komponen Rust sudah digunakan dalam produk seperti Microsoft 365 dan Copilot, dan backend khusus untuk Rust, rustc_codegen_utc, yang berbasis pada kompiler rustc, telah dikembangkan untuk kompiler MSVC.

    Microsoft menyebutkan tujuan utama penggunaan Rust adalah untuk memperkuat kode yang kritis terhadap keamanan. Menurut CTO Microsoft Azure, sekitar 70% dari semua kerentanan pada Windows Hal ini disebabkan oleh masalah manajemen memori yang dapat dihindari dengan menggunakan Rust.

  • Google telah menghapusnya dari kernel. Linux Implementasi Binder IPC lama, yang ditulis dalam bahasa C, telah dihentikan penggunaannya dan digantikan oleh driver Binder IPC baru yang ditulis ulang dalam bahasa Rust. Perlu dicatat bahwa selama 15 tahun keberadaannya, driver lama telah mengakumulasi hutang teknis yang signifikan dan banyak komplikasi, yang telah menghambat deteksi bug, pemeliharaan, dan penambahan fitur baru. Driver Binder IPC dalam bahasa Rust telah ditetapkan sebagai driver utama dan tidak lagi disajikan sebagai pengembangan eksperimental.
  • Arti 2.7.0, sebuah implementasi Rust dari toolkit Tor, telah dirilis. Setelah basis kode Arti mencapai tingkat yang mampu sepenuhnya menggantikan implementasi C, para pengembang Tor bermaksud menjadikan Arti sebagai implementasi Tor utama dan secara bertahap menghentikan pemeliharaan implementasi C. Versi baru ini mencakup pengembangan fungsionalitas untuk relay dan server Fungsionalitas Directory Authority (DA) terkait dengan penguraian dokumen, dukungan mirroring server direktori, dan pemrosesan lalu lintas DNS. Implementasi RPC untuk perubahan dan pemeriksaan konfigurasi telah ditambahkan. Beberapa kerentanan telah diperbaiki—administrator layanan onion disarankan untuk segera memperbarui sistem mereka.

Sumber: opennet.ru

Beli hosting yang andal untuk situs dengan perlindungan DDoS, server VPS VDS 🔥 Beli hosting website andal dengan perlindungan DDoS, server VPS VDS | ProHoster