Ana Sayfa

Ladybird Tarayıcısı Bellek Güvenliği İçin Rust'a Geçiyor

1 dk okuma

Ladybird tarayıcısı, uzun süredir C++ yerine bellek açısından güvenli bir programlama dili arayışındaydı. Daha önce Swift'i değerlendirmiş olsalar da, C++ ile birlikte çalışma yeteneği (interop) ve Apple ekosistemi dışındaki sınırlı platform desteği nedeniyle bu seçenekten vazgeçildi. Rust ise bu konuda farklı bir tablo çiziyor. Sistem programlama için çok daha olgun bir ekosisteme sahip olması ve birçok katkıcının dili zaten bilmesi, Ladybird ekibini Rust'a yöneltti. Başlangıçta Rust'ın C++ tarzı nesne yönelimli programlamadaki (OOP) zayıflıkları nedeniyle reddedilmiş olsa da, Firefox ve Chromium gibi büyük tarayıcıların da kod tabanlarına Rust'ı entegre etmeye başlaması, Ladybird için pragmatik bir seçim yapma zamanının geldiğini gösterdi.

Ladybird'ün Rust'a geçişteki ilk hedefi, tarayıcının JavaScript motoru olan LibJS oldu. Lexer, parser, AST ve bytecode generator gibi nispeten bağımsız ve test262 aracılığıyla kapsamlı test kapsamına sahip bileşenler, bu dönüşüm için doğal bir başlangıç noktası oluşturdu. Çeviri sürecinde Claude Code ve Codex gibi yapay zeka araçları, insan yönlendirmesiyle kullanıldı; bu, otonom kod üretimi yerine, hangi parçaların hangi sırayla ve nasıl dönüştürüleceğine dair yüzlerce küçük komutla yönlendirilen bir süreçti. İlk çevirinin ardından, farklı modeller kullanılarak hatalar ve kötü kod kalıpları için çok sayıda adversarial inceleme yapıldı.

Sonuçlar oldukça başarılı oldu. Yaklaşık 25.000 satır Rust kodunun iki haftada tamamlanması, bu işin manuel olarak aylar sürecek bir çaba olacağını gösterdi. Rust parser tarafından üretilen her AST'nin C++ versiyonuyla, Rust compiler tarafından üretilen tüm bytecode'un ise C++ compiler'ın çıktısıyla birebir aynı olduğu doğrulandı. test262 ve Ladybird regresyon testlerinde sıfır regresyon elde edildi. Ayrıca, hiçbir JS benchmark'ında performans düşüşü yaşanmadı. Mevcut Rust kodunun "C++'tan çevrilmiş" bir havaya sahip olduğu kabul edilse de, ilk aşamada öncelik C++ pipeline ile uyumluluk ve doğruluğa verildi.

İçgörü

Ladybird tarayıcısının bellek güvenliği ve modernizasyon hedefleri doğrultusunda Rust'a geçişi, yapay zeka destekli çeviri süreçleriyle hızla ve hatasız bir şekilde tamamlanarak web tarayıcı geliştirme alanında önemli bir adım attı.

Kaynak