Ana Sayfa

Ladybird Tarayıcısı, Swift Entegrasyonundaki Zorluklar Nedeniyle Vazgeçti

1 dk okuma

Ladybird tarayıcısı geliştiricileri, projelerinde Swift dilini benimseme çabalarını durdurma kararı aldıklarını duyurdu. Bu karar, Swift 6.0'ın deneysel durumdan çıkarılmasına engel olan bir dizi teknik sorundan kaynaklanıyor. Özellikle, Swift'in C++ ile birlikte çalışabilirliğini (interoperability) sağlamada karşılaşılan ciddi engeller, projenin Swift'e geçişini imkansız hale getiriyor. Geliştiriciler, Swift'in LLVM sürümündeki eksikliklerden, swift::Optional gibi türlerin C++'a doğru şekilde döndürülememesine, libstdc++ modül haritasındaki döngülere ve chrono başlık dosyasıyla ilgili uyumsuzluklara kadar birçok sorunla karşılaştı.

Bu sorunlar arasında, Swift'in Clang modül haritasının <execution> dahil edildiğinde döngüler içermesi, libstdc++-13 veya daha yüksek sürümlerin chrono başlığını içe aktaramaması ve swift::Optional<T> veya swift::String gibi bağlayıcı türlerin C++ fonksiyonlarından döndürülememesi gibi kritik engeller yer alıyor. Ayrıca, SWIFT_UNSAFE_REFERENCE türleriyle ilgili ön uç çökmeleri ve Vector<u32, 2> gibi yapıların CxxConvertibleToContainer olarak tanınmaması gibi daha spesifik sorunlar da listelendi. Bu teknik aksaklıklar, Ladybird gibi büyük ve karmaşık bir C++ kod tabanına Swift'i entegre etmenin mevcut durumda pratik olmadığını gösteriyor.

Geliştiriciler, bu sorunların çoğunun geçici çözümlerle aşılabileceğini belirtse de, bu çözümlerin genellikle karmaşıklığı artırdığı veya performans düşüşlerine yol açtığı vurgulandı. Swift ekibinin bazı sorunları gidermiş olmasına rağmen, Ladybird projesinin ilerlemesini engelleyen yeterince kritik sorun hala devam ediyor. Bu durum, özellikle mevcut C++ projelerinde Swift'i kullanmayı düşünen diğer geliştiriciler için önemli bir ders niteliği taşıyor ve iki dil arasındaki birlikte çalışabilirlik katmanının hala olgunlaşması gerektiğini ortaya koyuyor. Ladybird'in bu kararı, Swift'in C++ ile tam entegrasyon yolculuğunda hala katedilmesi gereken önemli bir mesafe olduğunu gösteriyor.

İçgörü

Swift'in C++ ile birlikte çalışabilirlik yeteneklerinin, büyük ölçekli ve karmaşık projelerde hala önemli zorluklar barındırdığını gösteriyor.

Kaynak