Pengeluaran bahasa pengaturcaraan sistem Rust 1.52, yang diasaskan oleh projek Mozilla, tetapi kini dibangunkan di bawah naungan organisasi bukan untung bebas Rust Foundation, telah diterbitkan. Bahasa ini menumpukan pada keselamatan ingatan, menyediakan pengurusan memori automatik dan menyediakan cara untuk mencapai keselarian tugas yang tinggi tanpa menggunakan pengumpul sampah atau masa jalan (masa jalan dikurangkan kepada permulaan asas dan penyelenggaraan perpustakaan standard).
Pengurusan memori automatik Rust menyelamatkan pembangun daripada ralat semasa memanipulasi penunjuk dan melindungi daripada masalah yang timbul akibat manipulasi memori peringkat rendah, seperti mengakses kawasan memori selepas ia dibebaskan, membatalkan penunjuk nol, menimpa lebihan, dsb. Untuk mengedarkan perpustakaan, menyediakan binaan dan mengurus kebergantungan, projek membangunkan pengurus pakej Kargo. Repositori crates.io disokong untuk mengehos perpustakaan.
Inovasi utama:
- Perintah pelaksanaan perintah "semakan kargo" dan "klip kargo" telah dialih keluar. Sebelum ini, memanggil "clippy kargo" selepas "cek kargo" tidak akan melancarkan utiliti clippy (linter) kerana kekurangan pemisahan cache antara kedua-dua mod semakan ini. Isu ini kini telah diselesaikan dan perintah memanggil "cargo clippy" dan "cargo check" tidak lagi penting.
- Sekumpulan API baharu telah dialihkan ke kategori stabil, termasuk kaedah berikut:
- Hujah::as_str
- char::MAX
- char::REPLACEMENT_CHARACTER
- char::UNICODE_VERSION
- char::decode_utf16
- char::from_digit
- char::from_u32_unchecked
- char::from_u32
- slice::partition_point
- str::rsplit_once
- str::split_once
- Atribut "const", yang menentukan kemungkinan menggunakannya dalam sebarang konteks dan bukannya pemalar, digunakan dalam kaedah:
- char::len_utf8
- char::len_utf16
- char::to_ascii_huruf besar
- char::to_ascii_huruf kecil
- char::eq_ignore_ascii_case
- u8::to_ascii_huruf besar
- u8::to_ascii_huruf kecil
- u8::eq_ignore_ascii_case
- Penambahan lint check unsafe_op_in_unsafe_fn untuk mengesan kod tidak selamat yang dibalut dalam blok tidak selamat apabila digunakan dalam fungsi tidak selamat.
- Penunjuk boleh ubah kepada tatasusunan boleh dihantar ke penuding kepada jenis yang sama seperti elemen tatasusunan. biarkan mut x: [guna; 2] = [0, 0]; biarkan p = &mut x sebagai *mut guna; biarkan p = &mut x sebagai *const guna;
- 9 cek baharu telah ditambahkan pada clippy (linter).
- Pengurus pakej kargo kini menyokong medan "manifest_path" dalam JSON. Repositori crates.io kini menyokong menentukan maklumat lesen dalam format SPDX 3.11.
- Kini mungkin untuk menentukan berbilang penapis semasa menjalankan ujian, contohnya menjalankan "ujian kargo - bar foo" akan menjalankan semua ujian yang sepadan dengan topeng "foo" dan "bar".
- Rantaian alat LLVM lalai telah dikemas kini kepada LLVM 12.
- Sokongan Tahap 3 telah dilaksanakan untuk platform s390x-unknown-linux-musl, riscv32gc-unknown-linux-musl, riscv64gc-unknown-linux-musl dan powerpc-unknown-openbsd. Tahap 3 menyediakan sokongan asas, tetapi tanpa ujian automatik, keluaran binaan rasmi atau pengesahan binaan.
Sumber: opennet.ru
