Rust programlama dili 1.54 sürümü

Mozilla projesi tarafından kurulan ancak şu anda bağımsız kar amacı gütmeyen kuruluş Rust Foundation'ın himayesinde geliştirilen sistem programlama dili Rust 1.54'ün sürümü yayınlandı. Dil, bellek güvenliğine odaklanır, otomatik bellek yönetimi sağlar ve bir çöp toplayıcı veya çalışma zamanı kullanmadan yüksek görev paralelliği elde etmek için araçlar sağlar (çalışma zamanı, standart kitaplığın temel başlatılmasına ve bakımına indirgenir).

Rust'un otomatik bellek yönetimi, işaretçileri değiştirirken oluşan hataları ortadan kaldırır ve serbest bırakıldıktan sonra bir bellek bölgesine erişim, boş işaretçi referansları, arabellek taşmaları vb. gibi düşük seviyeli bellek manipülasyonundan kaynaklanan sorunlara karşı koruma sağlar. Kütüphaneleri dağıtmak, montajı sağlamak ve bağımlılıkları yönetmek için proje, Kargo paket yöneticisini geliştiriyor. Crates.io deposu, kitaplıkları barındırmak için desteklenir.

Ana yenilikler:

  • Niteliklerin içine işlev benzeri makrolar kullanma yeteneği eklendi ("macro_rules!" makrosu kullanılarak oluşturulan prosedürel makrolar ve makrolar). Bu tür makrolar işlevlerden “!” sembolüyle ayrılır. adından sonra (makro!(...)) ve bir işlev çağrısı oluşturmak yerine makro kaynak metnini değiştirerek. Nitelikler içindeki makroları çağırmak, diğer dosyalardaki içeriğin yorumların belgelenmesine dahil edilmesi için yararlı olabilir. Örneğin, README dosyasının içeriğini ve komut dosyasının yürütülmesinin sonucunu eklemek için şunu belirtebilirsiniz: #![doc = include_str!("README.md")] #[path = concat!(env!("OUT_DIR) "), "/generate.rs" )] mod oluşturuldu;
  • Wasm32 platformu için yerleşik derleyici işlevleri (Intrinsics), WebAssembly'de SIMD talimatlarının kullanılmasına izin verecek şekilde stabilize edildi. V128_bitselect gibi çoğu işlev "güvenli" modda kullanılabilir, ancak işaretçilerle çalışan bazı işlevler (örneğin, v128_load) "güvenli değil" olarak kalır.
  • Artımlı derlemenin varsayılan kullanımı geri döndü ve kodun yalnızca değişen kısımlarını yeniden oluşturmanıza olanak tanıdı; bu, küçük değişiklikler yaptıktan sonra yeniden derlerken bir proje oluşturmak için gereken süreyi önemli ölçüde azaltabilir. Artımlı derleme, disk önbelleğinden veri yüklemek için ek bir denetim eklendikten sonra ortaya çıkan gizli hatalar nedeniyle 1.52.1 sürümünde devre dışı bırakıldı.
  • Aşağıdaki stabilize olanlar da dahil olmak üzere API'lerin yeni bir kısmı kararlı kategoriye aktarıldı:
      BTreeMap::into_keys
    • BTreeMap::into_values
    • HashMap::into_keys
    • HashMap::into_values
    • kemer::wasm32
    • VecDeque::binary_search
    • VecDeque::binary_search_by
    • VecDeque::binary_search_by_key
    • VecDeque::partition_point
  • Kargo ağacına seçenekler eklendi: “—prune " bağımlılık grafiğinden bir paketi kaldırmak için, "-derinlik" bağımlılık ağacında yalnızca belirli bir iç içe geçme düzeyinin öğelerini görüntülemek için, "-edges no-proc-makro" prosedürel makro bağımlılıkları gizlemek için.

Kaynak: opennet.ru

Yorum ekle