Rust 1.72 telah pun dikeluarkan dan ini adalah beritanya

logo karat

Rust ialah bahasa pengaturcaraan yang disusun berbilang paradigma, tujuan umum.

Beberapa hari lalu ia diumumkan keluaran versi baharu bahasa pengaturcaraan popular «Rust 1.72», versi yang mana ciri baharu telah ditambah, serta penambahbaikan, pembetulan pepijat dan pelbagai perubahan yang menumpukan pada menjadikan proses penciptaan kod lebih mudah dan lebih lancar.

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.72

Dalam versi baru ini yang datang dari Rust 1.72 versi salah satu daripada ciri yang paling inovatif ialah penambahbaikan dalam utiliti item dilumpuhkan oleh atribut cfg kompilasi bersyarat, yang membolehkan anda mendayakan pelaksanaan kod Rust bergantung pada sama ada ciri kotak tertentu disokong atau dijalankan pada platform tertentu.

Sebelum ini, item yang dilumpuhkan melalui cfg tidak kelihatan untuk pengkompil, tetapi kini berubah, sejak pengkompil kini mengekalkan maklumat penting termasuk nama elemen dan keadaan cfg. Ini membolehkan pengkompil memberikan maklum balas yang menarik, seperti menyerlahkan ketiadaan ciri kerana keperluan untuk mendayakan ciri kotak tertentu. Ini memberi pembangun panduan yang lebih jelas dan memudahkan pengalaman pengekodan yang lebih cekap. Sebagai contoh, ia membolehkan anda memahami bahawa sesetengah fungsi tidak tersedia disebabkan oleh pelumpuhan ciri ciri tertentu dalam kotak.

Satu lagi perubahan yang menonjol dalam versi baharu Rust 1.72 ini ialah sekatan pada masa penilaian ungkapan malar telah dikeluarkan, sebelum ini, untuk mengelakkan gelung masa kompilasi, Rust mengehadkan bilangan maksimum ungkapan yang boleh dilaksanakan semasa penilaian berterusan.
Ciri ini menyebabkan ralat semasa menyusun kod yang tidak mematuhi kepada sekatan, jadi dalam versi baharu ia telah memutuskan untuk menggantikan sekatan yang ketat dengan skrin amaran yang memaklumkan tentang pengiraan berterusan untuk tempoh yang lama. Semakan lint const_eval_long_running juga digunakan secara lalai untuk mengesan gelung.

Di samping itu, ia juga diperhatikan bahawa Senarai clippy telah ditambah baik, kerana beberapa semakan Clippy telah dipindahkan ke pengkompil Rustc:

  • undropped_manually_drops: ditukar kepada dengan tahap menafikan. Apabila berurusan dengan ManuallyDrop, nilai dalaman tidak digugurkan secara automatik. Memanggil std::mem::drop tiada kesan. Sebaliknya, lint ini kini mencadangkan untuk menggunakan ManuallyDrop::into_inner sebagai pilihan utama.
  • invalid_utf8_in_unchecked: dinamakan semula untuk menafikan tahap dan tahap amaran; invalid_from_utf8_unchecked invalid_from_utf8. Mengenal pasti keadaan di mana std::str::from_utf8_unchecked dan std::str::from_utf8_unchecked_mut digunakan dengan literal UTF-8 yang tidak sah. Penggunaan ini melanggar prasyarat keselamatannya dan membawa kepada tingkah laku yang tidak ditentukan. Bulu ini kini dilarang sama sekali.
  • invalid_nan_comparisons: mengenal pasti perbandingan yang melibatkan f32::NAN atau f64::NAN sebagai operan. Oleh kerana NaN tidak mempunyai perbandingan yang bermakna
  • invalid_reference_casting: menyerlahkan kes di mana &T menjadi &mut T tanpa mengambil kesempatan daripada kebolehubahan dalaman. Tindakan sedemikian mengakibatkan tingkah laku serta-merta dan tidak ditentukan, tidak kira sama ada rujukan itu digunakan atau tidak.

Daripada perubahan lain yang menonjol versi baru:

  • Bahagian baharu API telah dialihkan ke kategori 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:
  • Sokongan peringkat ketiga untuk platform loongarch64-unknown-none* telah dilaksanakan. Tahap ketiga melibatkan sokongan asas, tetapi tanpa ujian automatik, menerbitkan binaan rasmi dan mengesahkan kesesuaian kod.
  • Dalam keluaran Rust 1.76 pada masa hadapan, ia merancang untuk menggugurkan sokongan untuk platform Windows 7, 8, dan 8.1 dan menjadikan Windows 10 versi minimum untuk tujuan pengkompil dan binaan.

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.72.0 dengan:

rustup update stable