Ana Sayfa

LLVM'in Geliştirilebilecek Yönleri: Kötü Kısımlar

1 dk okuma

LLVM projesinin baş geliştiricisi tarafından kaleme alınan bu makale, projenin "kötü kısımlarını" veya geliştirme fırsatlarını ele alıyor. Yazar, daha önce LLVM IR'daki tasarım sorunlarına değindiği bir yazısından bu yana bazı sorunların çözüldüğünü belirtiyor. Ancak bu kez, daha kapsamlı bir yaklaşımla, projenin genel yapısındaki ve işleyişindeki önemli zorluklara odaklanıyor. Bu eleştirilerin amacı, LLVM'i kullanmamak için nedenler sunmak değil, aksine projenin daha iyi hale getirilmesi için potansiyel alanları işaret etmek.

Makalede öne çıkan temel sorunlardan biri "inceleme kapasitesi" (review capacity) eksikliği. LLVM'in binlerce katkıda bulunanı olmasına rağmen, kod incelemesi yapacak yeterli sayıda uzman bulunmuyor. Kod incelemesi, kod yazmaktan daha fazla uzmanlık gerektirdiği ve inceleyen kişiye anında değer sağlamadığı için bu durum şaşırtıcı değil. Yetersiz inceleme kapasitesi, katkıda bulunanlar için kötü bir deneyim yaratıyor ve niteliksiz değişikliklerin kod tabanına girmesine yol açabiliyor. Özellikle yeni katkıda bulunanlar için kimden inceleme talep edeceklerini bilmemek, PR'ların gözden kaçmasına neden olabiliyor. Rust benzeri bir PR atama sisteminin bu sorunu çözebileceği öne sürülüyor.

Bir diğer önemli sorun ise "değişim hızı" (churn). LLVM'in hem C++ API'si hem de LLVM IR'ı istikrarlı değil ve sık sık değişikliklere uğruyor. Bu durum, LLVM'in geçmiş hatalarını düzeltme ve kendini sürekli geliştirme yeteneği açısından bir güç olsa da, LLVM kullanıcıları için önemli maliyetler yaratıyor. Ön uçlar (frontends) büyük ölçüde istikrarlı C API'sini kullanabilse de, çoğu büyük ön uç yine de istikrarsız C++ API'sını kullanan ek bağlamalara ihtiyaç duyuyor. LLVM ile daha sıkı entegrasyon sağlayan kullanıcılar, örneğin alt akım arka uçları (downstream backends), bu seçeneğe sahip değil ve tüm API değişikliklerine ayak uydurmak zorunda kalıyorlar. Bu sürekli değişim, kullanıcılar için adaptasyon ve bakım yükünü artırıyor.

İçgörü

LLVM'in baş geliştiricisinin içgörüleri, projenin teknik ve yönetimsel zorluklarını ortaya koyarak açık kaynak ekosistemlerinde sürdürülebilir gelişimin kritik noktalarına dikkat çekiyor.

Kaynak