Rust 1.43 Programming Language Release

diterbitkeun release basa programming sistem Karat 1.43, diadegkeun ku proyék Mozilla. Basa éta museurkeun kana kaamanan mémori, nyayogikeun manajemén mémori otomatis, sareng nyayogikeun alat pikeun ngahontal paralelisme tugas anu luhur tanpa nganggo tukang sampah sareng runtime.

Manajemén mémori otomatis Rust ngahémat pamekar tina ngamanipulasi pointer sareng ngajagi tina masalah anu timbul tina manipulasi mémori tingkat rendah, sapertos ngaksés daérah mémori saatos dibébaskeun, ngémutan pointer nol, overruns panyangga, jsb. Pikeun ngadistribusikaeun perpustakaan, mastikeun assembly jeung ngatur kagumantungan, proyék ngamekarkeun manajer pakét kargo, anu ngamungkinkeun anjeun kéngingkeun perpustakaan anu anjeun peryogikeun pikeun program dina hiji klik. Repository dirojong pikeun host perpustakaan crates.io.

utama inovasi:

  • Macros nyadiakeun kamampuh ngagunakeun fragmen elemen pikeun ngarobah kana kode pikeun Tret (trait), palaksanaan (impl) atawa blok éksternal. Salaku conto:

    macro_rules! mac_trait {
    ($i:item) => {
    sipat T {$i}
    }
    }
    mac_trait! {
    fn foo() {}
    }

    Bakal ngakibatkeun generasi:

    sifat T {
    fn foo() {}
    }

  • Ningkatkeun jinis deteksi primitif, rujukan sareng operasi binér.
    Contona, kodeu handap, nu saméméhna ngabalukarkeun kasalahan, ayeuna bakal bisa compile (Karat ayeuna neuleu nangtukeun yén 0.0 jeung & 0.0 kudu tipe f32):

    hayu n: f32 = 0.0 + & 0.0;

  • Variabel lingkungan anyar CARGO_BIN_EXE_{ngaran} geus ditambahkeun kana kargo, nu diatur nalika ngawangun tés integrasi tur ngidinan Anjeun pikeun nangtukeun jalur pinuh ka file laksana didefinisikeun dina "[[bin]]" bagian tina iket.
  • Upami pernyataan diidinan nganggo atribut sapertos "#[cfg ()]".
  • Perpustakaan nyadiakeun kamampuhan pikeun ngagunakeun konstanta pakait langsung pikeun integer jeung fractional tipe, tanpa impor modul a. Contona, anjeun bisa langsung nulis u32:: MAX atawa f32:: NAN tanpa nangtukeun heula "make std:: u32" jeung "make std:: f32".
  • modul anyar ditambahkeun primitip, anu ngekspor ulang jinis primitif Rust, contona nalika anjeun kedah nyerat makro sareng pastikeun jinisna henteu disumputkeun.
  • Bagian anyar API parantos dialihkeun kana kategori stabil, kalebet distabilkeun

    Sakali:: is_completed,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 jeung
    iter:: once_with.

sumber: opennet.ru

Tambahkeun komentar