Ana Sayfa

Rust--: Borrow Checker Olmadan Rust Deneyimi

1 dk okuma

Rust--, Rust programlama dilinin ödünç alma denetleyicisini (borrow checker) devre dışı bırakan, değiştirilmiş bir derleyici sürümüdür. Geliştirici Büyük Akyüz tarafından oluşturulan bu proje, normalde Rust'ın katı ödünç alma kurallarını ihlal edecek kodların bile derlenip başarılı bir şekilde çalışmasına olanak tanır. Rust'ın bellek güvenliği ve eşzamanlılık garantilerinin temelini oluşturan borrow checker, birçok geliştirici için öğrenme eğrisini artıran ve bazen karmaşık kod yazımına yol açan bir özelliktir. Rust--, bu katı denetimi ortadan kaldırarak, geliştiricilere daha esnek bir kodlama deneyimi sunmayı hedefliyor.

Bu değiştirilmiş derleyici, özellikle String gibi Copy trait'ini uygulamayan tiplerin taşındıktan sonra kullanılmasını, aynı anda birden fazla değiştirilebilir referans (mutable borrow) oluşturulmasını veya değiştirilebilir bir referans varken orijinal değerin kullanılmasını mümkün kılar. Örneğin, standart Rust'ta bir String değeri başka bir değişkene atandığında, orijinal değişkenin değeri taşınmış sayılır ve tekrar kullanılamaz; Rust-- ise bu duruma izin verir. Benzer şekilde, Rust'ın aynı anda yalnızca bir adet değiştirilebilir referansa izin veren kuralı Rust--'da esnetilir, böylece birden fazla değiştirilebilir referans aynı anda var olabilir. Proje, macOS (Apple Silicon) ve Linux (x86_64) için önceden derlenmiş ikili dosyalar sunarak kolay kurulum imkanı sağlar.

Rust--'ın temel amacı, Rust'ın bellek güvenliği garantilerinden ödün vererek daha "serbest" bir programlama ortamı sağlamaktır. Bu durum, hızlı prototipleme veya belirli senaryolarda daha az kısıtlayıcı bir yaklaşım arayan geliştiriciler için cazip olabilir. Ancak, borrow checker'ın devre dışı bırakılması, çalışma zamanı hataları (runtime errors) ve bellek güvenliği sorunları riskini artırabilir, zira Rust'ın temel güvenlik mekanizmalarından biri ortadan kalkmış olur. Proje, standart Rust'ta derlenmeyecek birçok örnek kodu (01_move_then_use.rs, 02_multiple_mutable_borrows.rs gibi) başarıyla çalıştırarak bu esnekliği gözler önüne seriyor.

İçgörü

Bu proje, Rust'ın temel güvenlik mekanizmalarından biri olan borrow checker'ı devre dışı bırakarak, dilin bellek güvenliği garantileri ile geliştirme esnekliği arasındaki dengeyi sorgulayan önemli bir deneysel çalışma sunuyor.

Kaynak