Rust ialah bahasa pengaturcaraan yang disusun berbilang paradigma, tujuan umum.
Beberapa hari lalu ia diumumkan keluaran versi baharu bahasa pengaturcaraan popular «Karat 1.71″, versi di mana sejumlah besar API telah distabilkan, serta bahagian yang berbeza, penambahbaikan dan banyak lagi perkara telah diperkenalkan.
Bagi mereka yang tidak mengetahui bahasa pengaturcaraan ini, mereka harus tahu itu menumpukan pada keselamatan ingatan dan menyediakan cara untuk mencapai paralelisme yang tinggi kerja sambil mengelak penggunaan pengumpul sampah dan masa jalan (masa jalan dikurangkan kepada permulaan asas dan penyelenggaraan perpustakaan standard).
Kaedah pengurusan ingatan Rust mereka menyelamatkan pembangun daripada ralat semasa memanipulasi penunjuk dan melindungi daripada masalah yang timbul disebabkan oleh pengendalian memori peringkat rendah, seperti mengakses kawasan memori selepas ia dibebaskan, membatalkan penunjuk nol, limpahan penimbal, dsb. Untuk mengedarkan perpustakaan, menyediakan binaan dan mengurus kebergantungan, projek membangunkan pengurus pakej Kargo.
Ciri baharu utama Rust 1.71
Dalam versi baharu ini yang datang daripada Rust 1.71 Diserlahkan bahawa "C-unwind" luaran ABI telah distabilkan, yang berbeza daripada ABI tanpa akhiran "-unwind" ("extern "C"') dengan mengekalkan tingkah laku selamat jika proses unwind yang dimulakan oleh ranap program atau melontar pengecualian gaya C++ melintasi sempadan ABI. Perlu diingatkan bahawa keluaran Rust pada masa hadapan akan berusaha untuk mengubah suai ABI ini agar sepadan dengan gelagat yang ditentukan sebagai bahagian akhir menstabilkan ciri ini.
Satu lagi perubahan yang menonjol adalah sokongan yang stabil untuk atribut '#[debug_visualizer(natvis_file = «…»)]' dan '#[debug_visualizer(gdb_script_file = «…»)]', apa hlmBenarkan pembenaman metadata Microsoft Natviz dan skrip GDB ke dalam perpustakaan Rust untuk menambah baik output penyahpepijatan apabila memeriksa struktur data yang dibuat oleh perpustakaan. Skrip sedemikian sudah disertakan untuk pustaka standard dan kini boleh dimasukkan untuk pustaka pihak ketiga.
Di samping itu, ia juga diserlahkan Kargo mengoptimumkan penggunaannya di bawah rustup Apabila Kargo mengesan bahawa rustc akan dilaksanakan dengan menunjuk kepada proksi Rustup, ia akan cuba memintas proksi dan menggunakan binari asas secara langsung. Terdapat andaian tentang interaksi dengan rustup dan RUSTUP_TOOLCHAIN. Walau bagaimanapun, ia tidak dijangka menjejaskan pengguna biasa.
Selain itu, pada Windows, adalah mungkin untuk menggunakan fungsi daripada perpustakaan dinamik yang tidak tersedia pada masa penyusunan (contohnya, untuk mengelakkan pemasangan perpustakaan yang tidak diperlukan dalam persekitaran binaan dan untuk memudahkan penyusunan silang).
Ia juga ditekankan bahawa sokongan peringkat ketiga untuk platform x86_64 h-apple-darwin. Tahap ketiga melibatkan sokongan asas, tetapi tanpa ujian automatik, keluaran binaan rasmi dan pengesahan keupayaan untuk menyusun kod.
Perubahan lain yang menonjol dalam versi baru ini:
- Platform sasaran menggunakan perpustakaan Musl C telah dipindahkan ke Musl versi 1.2.3 (sebelum ini versi 1.1.24 digunakan), yang membenarkan penggunaan jenis time64 pada sistem 32-bit.
- Pustaka standard menyediakan varian makro thread_local yang dimulakan dengan atribut "const", yang boleh digunakan dalam konteks dan bukannya pemalar, membolehkan anda menjana kod yang lebih optimum.
- Bahagian baharu API telah dialihkan kepada stabil, termasuk kaedah dan pelaksanaan ciri yang telah distabilkan:
- Atribut "const", yang menentukan kemungkinan menggunakan dalam mana-mana konteks dan bukannya pemalar, digunakan dalam fungsi:
- Pengurus pakej Kargo membenarkan anda untuk menentukan pilihan bernama debuginfo dalam fail Cargo.toml.
- Flatten-format-args didayakan secara lalai.
- Rust juga menyokong pemautan kepada simbol yang dibekalkan DLL dengan ordinal dan bukannya simbol bernama, menggunakan atribut #[link_ordinal] baharu.
- Menambahkan pilihan workspace_default_members pada metadata. Apabila melaksanakan perintah "cargo new" dan "cargo init", medan dalam ruang kerja diwarisi secara automatik.
- Sokongan tahap kedua telah dilaksanakan untuk platform sasaran loongarch64-unknown-linux-gnu.
Jika anda berminat untuk mengetahui lebih lanjut mengenainya, anda boleh menyemak butirannya di pautan berikut.
Akhir sekali, bagi mereka yang Berminat untuk menaik taraf daripada versi sebelumnya Rust dipasang melalui rustup, anda boleh mendapatkan versi baharu Rust 1.71.0 dengan:
rustup update stable