Özet: geçiş için birincil nedeni GCC için Clang GCC en uyumsuzluğudur GPL v3 ile lisans FreeBSD projesinin hedefleri . Kullanıcı yatırımı gerekliliklerinin yanı sıra kurumsal yatırımlarla ilgili politik konular da vardır. Son olarak, standartlara uyum ve hata ayıklama kolaylığı ile ilgili yapılması beklenen teknik avantajlar vardır. Derleme ve uygulamadaki gerçek dünya performansındaki gelişmeler kodlara özel ve tartışılabilir; her iki derleyici için de durumlar yapılabilir.
FreeBSD ve GPL: FreeBSD'nin GPL ile tedirgin bir ilişkisi var. BSD lisans savunucuları, gerçekten özgür yazılımın kullanım kısıtlaması bulunmadığını düşünüyor . GPL savunucuları , yazılım özgürlüğünü korumak için kısıtlamaların gerekli olduğuna ve özellikle de özgür olmayan yazılımın özgür yazılımdan yaratılmasının bir özgürlük değil , haksız bir güç biçimi olduğuna inanmaktadır . FreeBSD projesi, mümkün olduğunda GPL'nin kullanılmasından kaçınmaya çalışır :
Bununla birlikte, GPL yazılımının ticari kullanımında gelişebilecek ek karmaşıklıklar nedeniyle, mümkün olduğunda, daha rahat bir FreeBSD lisansı altında bu tür yazılımları daha rahat bir FreeBSD lisansı altında sunulan gönderilerle değiştirmeye çalışıyoruz.
FreeBSD ve GPL v3: GPL v3 açıkça sözde yasaklamaktadır Tivoisation kod, bir kaçamak GPL v2 kullanıcılar tarafından aksi yasal yazılım değişiklikleri izin vermemek için donanım kısıtlamaları sağladı. Bu boşluğu kapatmak , FreeBSD topluluğundaki birçok kişi için kabul edilemez bir adımdı :
Özellikle cihaz satıcıları, günümüzde GPLv2 kapsamında lisanslanmış olan büyük yazılım kitlesinin bugün yeni lisansa geçmesi durumunda kaybedecek en fazla şeye sahiptir. Artık GPLv3 yazılımını kullanma özgürlüğüne sahip olmayacaklar ve donanımlarına yüklenen yazılımın değiştirilmesini kısıtlayacaklar… Kısacası, GPL lisanslı yazılımın alternatiflerini anlamakla aniden ilgilenen çok sayıda OpenSource tüketicisi var.
GCC’nin GPL v3’e taşınması nedeniyle, FreeBSD, 2007’de geri bırakılan ve şu anda önemli ölçüde eski olan GCC 4.2.1 (GPL v2) kullanarak kalmaya zorlandı . FreeBSD'nin GCC'nin daha modern versiyonlarını kullanmak için harekete geçmemiş olması, eski bir derleyici çalıştırma ve destekleyici düzeltmelerin ek bakım baş ağrılarıyla bile olsa, GPL v3'ten kaçınma gerekliliği hakkında bir fikir vermektedir. C derleyicisi FreeBSD tabanının önemli bir bileşenidir ve " FreeBSD 10 için (geçici) hedeflerden biri GPL içermeyen bir temel sistemdir ".
Kurumsal yatırım: Birçok büyük açık kaynaklı proje gibi FreeBSD, kuruluşlardan finansman ve geliştirme çalışmaları almaktadır. FreeBSD'nin Apple tarafından finanse edilmesinin veya geliştirilmesinin ne kadar kolay olduğu keşfedilemese de, Apple'ın Darwin işletim sistemi BSD kaynaklı çekirdek kodunu kullandığı için önemli miktarda örtüşme var . Ek olarak, Clang'ın kendisi, 2007'de açık kaynaklı hale getirilmeden önce başlangıçta bir Apple projesi idi . Kurumsal kaynaklar FreeBSD projesinin kilit bir aracı olduğundan, sponsorun ihtiyaçlarını karşılamak muhtemelen önemli bir gerçek dünya sürücüsüdür .
Userbase: FreeBSD birçok şirket için cazip bir açık kaynak seçeneğidir, çünkü lisanslama basit, sınırlayıcı değildir ve davalara yol açma olasılığı düşüktür. GPL v3'ün ve yeni Tivayet Önleme hükümlerinin gelmesiyle , daha fazla izin verilen lisanslara yönelik hızlandırıcı, satıcı odaklı bir eğilim olduğu öne sürüldü . FreeBSD'nin ticari varlıklara karşı algılanan avantajı, izin verilen lisansında yattığı için, kurumsal kullanıcı tabanından GCC'den ve genel olarak GPL'den uzaklaşmak için artan bir baskı var.
GCC ile ilgili sorunlar: Lisans dışında GCC kullanımında bazı algılanan sorunlar vardır . GCC tam standartlara uygun değildir ve ISO standardı C'de bulunmayan birçok uzantıya sahiptir . 3 milyondan fazla kod satırında, aynı zamanda " en karmaşık ve ücretsiz / açık kaynaklı yazılım projelerinden biridir ". Bu karmaşıklık, dağıtım düzeyinde kod değişikliğini zorlu bir görev haline getirir.
Teknik avantajlar: Clang, GCC'ye kıyasla bazı teknik avantajlara sahiptir . En dikkat çekici olanı, çok daha bilgilendirici hata mesajları ve IDE'ler, yeniden düzenleme ve kaynak kod analizi araçları için açıkça tasarlanmış bir API'dir . Clang web sitesi çok daha verimli derleme ve bellek kullanımı gösteren grafikler sunsa da , gerçek dünya sonuçları oldukça değişkendir ve geniş bir şekilde GCC performansıyla uyumludur. Genel olarak, Clang tarafından üretilen ikili dosyalar eşdeğer GCC ikili değerlerinden daha yavaş çalışır :
LLVM kullanımı bina kodunda GCC'den daha hızlı olmasına rağmen, çoğu durumda GCC 4.5 inşa edilmiş ikilileri testlerin geri kalanında LLVM-GCC veya Clang'dan daha iyi performans gösterdi. arkasında. Bazı testlerde, Clang tarafından üretilen ikili dosyaların performansı çok kötüydü.
Sonuç: Derleme verimliliğinin, FreeBSD gibi büyük bir projeyi, özellikle ikili performansın eksik olduğu durumlarda, tamamen yeni bir derleyici araç zincirine geçirme riskini almak için önemli bir motivasyon olması muhtemel değildir. Bununla birlikte, durum gerçekten uygulanabilir değildi. 1) eski bir GCC’yi yürütmek, 2) Modern bir GCC’ye geçmek ve projenin hedefleriyle uyumlu bir lisans kullanmak zorunda kalmak veya 3) istikrarlı bir BSD lisanslı derleyiciye geçmek için bir seçim yapılması durumunda, Muhtemelen kaçınılmazdı. Bunun yalnızca temel sistem için geçerli olduğunu ve dağıtımdan destek aldığını unutmayın; hiçbir şey bir kullanıcının FreeBSD kutusuna kendi başına modern bir GCC kurmasını ve kullanmasını engelleyemez.