Ana içeriğe geç
Programlama

Rust ekibi özel bellek ayırıcılarını kararlı sürüme yaklaştırıyor

Öne çıkanlar

  • Allocator arayüzü yalnızca iki çekirdek metot içerecek şekilde sadeleştirildi.
  • Dinamik bellek ayırıcı desteği (dyn Allocator) doğrudan ilk sürüme dahil ediliyor.
  • Çift serbest bırakma riskini engellemek için bellek ayırıcılarda geri sarma yasaklandı.
  • Güvenlik riskleri nedeniyle Box::pin_in metodu ilk kararlı sürüm kapsamından çıkarıldı.

Rust kütüphane ekibi, uzun süredir deneysel aşamada bulunan özel bellek ayırıcı (custom allocator) desteğini kararlı sürüme taşımak için çalışmalarını yoğunlaştırdı. Yayımlanan son teknik durum raporuna göre, Allocator arayüzünün (trait) temel çerçevesi daraltılarak kararlı sürüme hazır bir asgari uygulanabilir ürün (MVP) oluşturuldu. Yeni düzenleme ile birlikte Allocator arayüzü yalnızca iki temel metot barındırıyor ve dinamik dağıtıma (dyn Allocator) doğrudan uyumlu şekilde tasarlanıyor.

İlk etapta destek yalnızca Vec ve Box koleksiyonları ile sınırlandırıldı. Geliştiriciler, bellek tahsisi sırasında oluşabilecek panik durumlarının çift serbest bırakma (double free) gibi güvenli olmayan durumlara yol açmaması için bellek ayırıcılardan geri sarma (unwind) işlemini bütünüyle yasakladı. Bu katı güvenlik yaklaşımı, bellek büyümesi veya yeniden boyutlandırma anında veri yapılarının tutarsız duruma düşmesini engellemeyi amaçlıyor.

Öte yandan Drop, Clone ve Pin davranışlarıyla kesişen bellek yönetimi senaryolarında güvenli olmayan durumların (unsoundness) ortaya çıktığı tespit edildi. Özellikle Bump tipi alan tahsisçilerinin Pin garantilerini veya harita veri yapılarındaki klonlama kurallarını bozmasını önlemek amacıyla AllocatorClone ve StaticAllocator gibi güvensiz işaretçi arayüzlerin eklenmesi planlanıyor. Kütüphane ekibinin incelemelerinin ardından teklif 10 günlük nihai yorum sürecine girecek.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.