Rust 1.100.0 Rilis, Never Type Stabil setelah 10 Tahun dan Cargo Dapat Fitur Masa Tunggu Paket
Butuh sepuluh tahun dan lima percobaan yang gagal sebelum tipe ! akhirnya lolos dari status eksperimental. Rilis yang sama juga memberi Cargo cara menunda pemakaian versi paket yang terlalu baru.
Tim Rust merilis Rust 1.100.0 pada Kamis (12/11/2026), menurut pengumuman resmi di blog Rust yang ditandatangani Rust Release Team. Pengguna rustup cukup menjalankan rustup update stable, sementara pemasangan baru dilakukan lewat halaman instalasi rust-lang.org. Catatan rilis lengkap tersedia di dokumentasi Rust.
Never Type Stabil, Edisi Lama Terkena Perubahan
Never type, ditulis !, kini stabil dan bisa dipakai di mana saja, termasuk dalam bentuk Result<T, !> yang sebelumnya tidak diizinkan. Tipe Infallible sekarang menjadi alias dari !, sehingga API lama yang memakai Infallible ikut menerima tipe baru ini.
Ada satu perubahan yang bisa memutus kode lama. Pada edisi sebelum 2024, yaitu 2015, 2018, dan 2021, fallback never type berubah dari () menjadi !. Tim Rust menyebut dampaknya "should largely be unnoticeable", tetapi kasus langka seperti mengabaikan hasil fungsi yang mengembalikan parameter generik bisa terpengaruh. Kompiler juga bisa menandai lebih banyak kode sebagai tak terjangkau. Peringatan kompatibilitas sudah diterbitkan lebih awal, dan perbaikan dirilis untuk crate publik yang terdampak.
API Alokator Tahap Inti Ikut Stabil
Trait Allocator dari fitur allocator_api kini stabil, sehingga alokator kustom dapat dipakai dengan Vec dan Box. Ini fondasi proyek bernama Allocators 1.0. Metode seperti Box::new_in, Vec::new_in, dan Vec::with_capacity_in ikut stabil bersama Allocator untuk Global, System, serta Rc, Arc, dan Box. Tim menyatakan cakupan API, koleksi, dan tipe penunjuk lain masih akan menyusul.
Masa Tunggu Paket di Cargo untuk Meredam Serangan Rantai Pasok
Fitur min-publish-age di Cargo kini stabil dan bersifat opsional. Dalam .cargo/config.toml, pengembang bisa menulis global-min-publish-age = "3 days" di bagian [registry]. Cargo lalu melewati versi yang terbit lebih baru dari batas itu dan melaporkan apa yang ditahan, misalnya cc v1.11.0 yang tersedia dalam versi 1.18.0 tetapi baru terbit tiga jam lalu.
Ada pengecualian yang perlu dicatat. Versi tanpa bidang pubtime di indeks tidak pernah ditahan, dan cargo install mengabaikan batas ini baik untuk crate yang dipasang maupun dependensinya. Tim Rust mengakui masa tunggu "are not a complete defense on their own", dan menyebut rencana pengerasan rantai pasok crates.io berupa dukungan karantina serta deteksi otomatis rilis mencurigakan. Jeda semacam ini relevan bagi tim yang ingin menunda versi paket baru sampai komunitas sempat memeriksanya.
Peringatan Dependensi Tak Terpakai dan Tata Letak Build Baru
Cargo sekarang memberi peringatan untuk dependensi yang tidak terpakai lewat lint cargo::unused_dependencies, yang bertingkat warn secara bawaan dan diatur di tabel [lints.cargo]. Perintah cargo check --bin foo tidak memperingatkan dependensi biasa, karena biner lain mungkin memakainya, dan dev-dependencies tidak diperiksa.
Direktori build kini disusun menurut langkah build, bukan jenis berkas, dengan hash konfigurasi pindah dari nama berkas ke direktori induk. Tim memperingatkan perubahan ini "may break" proses build dan pengujian yang punya solusi sementara untuk fitur yang dulu belum lengkap. Diskusinya ada di isu Cargo nomor 17287.
Fungsi dan Metode Baru
Rilis ini juga menstabilkan core::mem::DropGuard, pembantu yang menjalankan closure saat dilepas, dan std::mem::conjure_zst, fungsi unsafe untuk membuat nilai bertipe berukuran nol. Beberapa API sehari-hari ikut masuk, antara lain bool::toggle, Vec::from_fn, str::trim_prefix, dan str::trim_suffix. Pembaruan serupa di ekosistem lain bisa dibandingkan dengan rilis .NET 11 yang kami laporkan Kamis.
Yang masih ditunggu adalah seberapa banyak proyek besar yang memerlukan penyesuaian akibat perubahan fallback never type, serta kapan API alokator menjangkau koleksi selain Vec dan Box.
Komentar (0)
Masuk untuk menulis komentar.
Belum ada komentar.