Swift artımlı derleme nasıl çalışıyor?
(medium.com)Aşağıdaki gibi özetlenebilir.
-
Xcode 10'dan itibaren llbuild tabanlı olarak dosya düzeyinde artımlı derleme çalışır.
-
Xcode derleme loglarında fark yokmuş gibi görünse de bağımlılıklar analiz edilir, arayüz hash değerleri karşılaştırılır ve nesne
.odosyaları oluşturulur. Elbette uygulama kısmı değişirse yeniden oluşturulur. -
Eğer bağımlılığı olan başka bir kaynak dosyanın arayüz hash değeri aynıysa nesne dosyası oluşturulmaz.
-
Swift dosyası bağımlılık bilgileri
.swiftdepsdosyasında görülebilir. -
Dosya düzeyinde
swiftmodule'ün bir parçası olan partial'lar oluşturulur ve linkleme sırasında tüm modül birleştirilir. -
Java'daki Gradle derlemesinde olduğu gibi ISP'ye bölündüğünde arayüzlere ayrılıp sadece değişiklik olan dosyaların derlenmesi gibi bir durum yoktur.
-
Swift kaynak dosyaları derlenirken uygulama kısmı değişen dosyalar yeniden derlenir; ancak bağımlılıklar bildirimler merkez alınarak belirlendiği için yalnızca bildirimi değişen dosyaya bağımlı olanlar yeniden derlenir.
Henüz yorum yok.