Rilis Bahasa Pemrograman Rust 1.43

diterbitkan rilis bahasa pemrograman sistem Karat 1.43, didirikan oleh proyek Mozilla. Bahasa ini berfokus pada keamanan memori, menyediakan manajemen memori otomatis, dan menyediakan alat untuk mencapai paralelisme tugas yang tinggi tanpa menggunakan pengumpul sampah dan runtime.

Manajemen memori otomatis Rust membebaskan pengembang dari manipulasi penunjuk dan melindungi dari masalah yang timbul dari manipulasi memori tingkat rendah, seperti akses memori setelah bebas, dereferensi penunjuk nol, buffer overruns, dan sejenisnya. Manajer paket sedang dikembangkan untuk mendistribusikan perpustakaan, memastikan perakitan dan mengelola ketergantungan oleh proyek. Muatan, memungkinkan Anda mendapatkan perpustakaan yang diperlukan untuk program dalam satu klik. Repositori didukung untuk menghosting perpustakaan peti.io.

Utama inovasi:

  • Makro menyediakan kemampuan untuk menggunakan fragmen elemen untuk mengubahnya menjadi kode untuk ciri (trait), implementasi (impl) atau blok eksternal. Misalnya:

    aturan_makro! mac_trait {
    ($i:barang) => {
    sifat T { $i }
    }
    }
    mac_trait! {
    fn foo() {}
    }

    Akan menghasilkan generasi:

    sifat T {
    fn foo() {}
    }

  • Peningkatan deteksi tipe primitif, referensi, dan operasi biner.
    Misalnya, kode berikut, yang sebelumnya menyebabkan kesalahan, sekarang dapat dikompilasi (Rust sekarang menentukan dengan benar bahwa 0.0 dan &0.0 harus bertipe f32):

    misalkan n: f32 = 0.0 + &0.0;

  • Variabel lingkungan baru CARGO_BIN_EXE_{name} telah ditambahkan ke Cargo, yang disetel saat membuat pengujian integrasi dan memungkinkan Anda menentukan jalur lengkap ke file yang dapat dieksekusi yang ditentukan di bagian β€œ[[bin]]” pada paket.
  • Pernyataan if diperbolehkan menggunakan atribut seperti "#[cfg()]".
  • Pustaka menyediakan kemampuan untuk menggunakan konstanta terkait secara langsung untuk tipe bilangan bulat dan pecahan, tanpa mengimpor modul. Misalnya, Anda dapat langsung menulis u32::MAX atau f32::NAN tanpa terlebih dahulu menentukan β€œuse std::u32” dan β€œuse std::f32”.
  • Modul baru ditambahkan primitif, yang mengekspor ulang tipe primitif Rust, misalnya saat Anda perlu menulis makro dan memastikan tipe tersebut tidak disembunyikan.
  • Sebagian API baru telah dipindahkan ke kategori stabil, termasuk stabil

    Sekali::selesai,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 dan
    iter::sekali_dengan.

Sumber: opennet.ru

Tambah komentar