Rust programlama dili 1.43 sürümü

yayınlanan sistem programlama dili sürümü Pas 1.43Mozilla projesi tarafından kuruldu. Dil, bellek güvenliğine odaklanır, otomatik bellek yönetimi sağlar ve çöp toplayıcı kullanmadan yüksek görev paralelliği elde etmek için araçlar sağlar ve runtime.

Rust'un otomatik bellek yönetimi, geliştiriciyi işaretçi manipülasyonundan kurtarır ve boş bellek erişimleri, boş işaretçi referansları, arabellek taşmaları ve benzeri gibi düşük seviyeli bellek manipülasyonundan kaynaklanan sorunlara karşı koruma sağlar. Kütüphanelerin dağıtılması, montajın sağlanması ve bağımlılıkların projeye göre yönetilmesi için bir paket yöneticisi geliştirilmektedir. Kargo, program için gereken kütüphanelere tek tıklamayla ulaşmanızı sağlar. Kitaplıkları barındırmak için bir depo desteklenir sandıklar.io.

Ana yenilikler:

  • Makrolar, öğe parçalarını özellikler (özellik), uygulamalar (impl) veya harici bloklar için koda dönüştürmek amacıyla kullanma yeteneği sağlar. Örneğin:

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

    Nesle yol açacak:

    özellik T {
    fn foo() {}
    }

  • İlkellerin, referansların ve ikili işlemlerin geliştirilmiş tür tespiti.
    Örneğin, daha önce hataya neden olan aşağıdaki kod artık derlenebilecek (Rust artık 0.0 ve &0.0'ın f32 türünde olması gerektiğini doğru bir şekilde belirliyor):

    n: f32 = 0.0 + &0.0;

  • Cargo'ya, entegrasyon testleri oluşturulurken belirlenen ve paketin "[[bin]]" bölümünde tanımlanan yürütülebilir dosyanın tam yolunu belirlemenize olanak tanıyan yeni bir ortam değişkeni CARGO_BIN_EXE_{name} eklendi.
  • If ifadelerinin "#[cfg()]" gibi nitelikleri kullanmasına izin veriliyorsa.
  • Kitaplık, bir modülü içe aktarmadan, tam sayı ve kesirli türler için ilişkili sabitleri doğrudan kullanma olanağı sağlar. Örneğin, önce "use std::u32" ve "use std::f32" belirtmeden, hemen u32::MAX veya f32::NAN yazabilirsiniz.
  • Yeni modül eklendi ilkelÖrneğin bir makro yazmanız ve türlerin gizli olmadığından emin olmanız gerektiğinde, Rust temel türlerini yeniden dışa aktaran .
  • API'lerin yeni bir kısmı, stabilize olanlar da dahil olmak üzere stabil kategoriye aktarıldı

    Bir kez::is_completed,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 ve
    iter::once_with.

Kaynak: opennet.ru

Yorum ekle