Basa pemrograman Rust 1.52 release

Rilis basa pemrograman sistem Rust 1.52, sing diadegake dening proyek Mozilla, nanging saiki dikembangake ing sangisore organisasi nirlaba independen Rust Foundation, wis diterbitake. Basa fokus ing safety memori, menehi Manajemen memori otomatis, lan menehi liya kanggo entuk podo tugas dhuwur tanpa nggunakake kolektor uwuh utawa runtime (runtime suda kanggo initialization dhasar lan pangopènan perpustakaan standar).

Manajemen memori otomatis Rust ngilangake kasalahan nalika manipulasi penunjuk lan nglindhungi saka masalah njedhul saka manipulasi memori tingkat kurang, kayata ngakses wilayah memori sawise wis dibebaske, null pointer dereferences, buffer overruns, etc. Kanggo nyebarake perpustakaan, mesthekake perakitan lan ngatur dependensi, proyek ngembangake manajer paket Cargo. Repositori crates.io didhukung kanggo hosting perpustakaan.

Inovasi utama:

  • Dibusak naleni urutan eksekusi "kargo mriksa" lan "cargo clippy" printah. Sadurunge, nelpon "cargo clippy" sawise "cargo check" ora mbukak utilitas clippy (linter) amarga ora ana pemisahan cache kanggo mode mriksa kasebut. Saiki masalah iki wis dirampungake lan urutan "kargo clippy" lan "pemeriksaan kargo" ora dadi masalah maneh.
  • BagΓ©an anyar saka API wis ditransfer menyang kategori stabil, kalebu cara ing ngisor iki wis stabil:
    • Argumen::as_str
    • karakter:: MAX
    • karakter::REPLACEMENT_CHARACTER
    • char::UNICODE_VERSION
    • char::decode_utf16
    • char:: saka_digit
    • char:: from_u32_unchecked
    • char::saka_u32
    • irisan:: partition_point
    • str::rsplit_once
    • str:: pamisah_sapisan
  • Atribut "const", sing nemtokake kemungkinan nggunakake ing konteks apa wae tinimbang konstanta, digunakake ing metode:
    • char::len_utf8
    • char::len_utf16
    • char::to_ascii_huruf gedhe
    • char::to_ascii_huruf cilik
    • char::eq_ignore_ascii_case
    • u8::to_ascii_huruf gedhe
    • u8::to_ascii_huruf cilik
    • u8::eq_ignore_ascii_case
  • Ditambahake mriksa lint unsafe_op_in_unsafe_fn kanggo nemtokake manawa kode sing ora aman digunakake ing fungsi sing ora aman dibingkai dening blok sing ora aman.
  • Diijini kanggo ngirim pitunjuk sing bisa diowahi menyang array menyang bentuk penunjuk kanggo jinis unsur array. ayo mut x: [nggunakake; 2] = [0, 0]; supaya p = & mut x minangka *mut usize; supaya p = & mut x minangka * const nggunakake;
  • 9 mriksa anyar wis ditambahake menyang clippy (linter).
  • Manajer paket kargo saiki ndhukung kolom "manifest_path" ing JSON kanggo paket. Nambahake dhukungan kanggo nemtokake informasi lisensi ing format SPDX 3.11 menyang repositori crates.io.
  • Diijini kanggo nemtokake macem-macem saringan nalika mbukak tes, contone mlaku "test kargo - foo bar" bakal mbukak kabeh tes sing cocog karo topeng "foo" lan "bar".
  • Toolkit LLVM standar wis dianyari menyang LLVM 12.
  • Dhukungan tingkat katelu wis dileksanakake kanggo platform s390x-unknown-linux-musl, riscv32gc-unknown-linux-musl, riscv64gc-unknown-linux-musl lan powerpc-unknown-openbsd. Tingkat katelu kalebu dhukungan dhasar, nanging tanpa tes otomatis, nerbitake bangunan resmi, utawa mriksa manawa kode kasebut bisa dibangun.

Source: opennet.ru

Add a comment