Haberler

Rust 1.96: Yeni Kopya Dostu Aralık Türleri Tanıtıldı

Rust 1.96 sürümüyle birlikte gelen yeni aralık türleri, stabilize edilmiş assert makroları ve WebAssembly bağlayıcı değişiklikleri hakkında detaylı bilgiler

  • Yeni core::range::Range* türleri Copy olarak işaretlenebiliyor.
  • WebAssembly bağlayıcısı artık tanımsız sembolleri hata olarak ele alıyor.
  • Cargo'da üçüncü taraf kayıt defterlerini etkileyen iki güvenlik açığı düzeltildi.
Rust 1.96: Yeni Kopya Dostu Aralık Türleri Tanıtıldı

Rust programlama dilinin en son kararlı sürümü olan Rust 1.96, yeni aralık türleri, stabilize edilmiş assert makroları, WebAssembly bağlayıcı değişiklikleri ve üçüncü taraf kayıt defterlerini etkileyen iki Cargo güvenlik açığı için düzeltmelerle birlikte kullanıma sunuldu.

Bu güncellemenin en dikkat çekici yeniliği, core::range::Range* türlerinin stabilize edilmesi. Daha önce Rust'ın core::ops modülündeki aralık türleri doğrudan Iterator özelliğini uyguladığı için Copy olarak işaretlenemiyordu. Bu durum, geliştiricilerin hafif kopyalanabilir türler içinde aralık değerleri depolamak istediklerinde sorun yaratıyordu. Rust 1.96 ile birlikte gelen yeni türler, IntoIterator özelliğini uygulayarak Copy olarak işaretlenebiliyor.

Şu an için 0..1 gibi aralık sözdizimi eski aralık türlerini üretmeye devam ediyor. Rust ekibi, bu sözdiziminin gelecekteki bir sürümde yeni core::range türlerine taşınacağını belirtiyor. Kütüphane yazarlarına, hem eski hem de yeni aralık türlerini desteklemek için genel API'lerde impl RangeBounds kullanmaları öneriliyor.

Sürüm ayrıca assert_matches! ve debug_assert_matches! makrolarını stabilize ediyor. Bu makrolar, bir değerin belirli bir desenle eşleşip eşleşmediğini kontrol ediyor ve başarısızlık durumunda değerin Debug temsilini yazdırıyor. Düz bir assert!(matches!(...)) kontrolünden çok daha kullanışlı teşhis bilgileri sağlıyor. Ancak bu makrolar Rust'ın standart ön yükünde yer almıyor; geliştiricilerin bunları manuel olarak içe aktarması gerekiyor.

Rust 1.96, WebAssembly hedeflerinin bağlanma şeklini de değiştiriyor. Derleyici artık bağlayıcıya varsayılan olarak --allow-undefined seçeneğini geçirmiyor, bu nedenle tanımsız semboller bağlayıcı hataları olarak ele alınıyor. Rust ekibi, bu değişikliğin özellikle eksik semboller veya adlandırma sorunları gibi derleme zamanı hatalarını daha erken yakalamayı amaçladığını belirtiyor. Önceki davranışa güvenen projeler, RUSTFLAGS=-Clink-arg=--allow-undefined kullanarak veya kaynak kodunda #[link(wasm_import_module = "env")] ekleyerek eski davranışı geri getirebilir.