Swift incremental build कैसे काम करता है
(medium.com)इसे इस प्रकार संक्षेप में बताया जा सकता है.
-
Xcode 10 के बाद llbuild-आधारित incremental build फ़ाइल-स्तर पर काम करता है.
-
Xcode build log में ऊपर से कोई अंतर नहीं दिखता, लेकिन यह dependencies का विश्लेषण करता है, interface hash values की तुलना करता है, और object
.oफ़ाइलें बनाता है. बेशक, implementation भाग बदलने पर उन्हें फिर से बनाया जाता है. -
अगर dependency रखने वाली दूसरी source file की interface hash value समान हो, तो object file नहीं बनाई जाती.
-
Swift file dependency जानकारी
.swiftdepsफ़ाइल में देखी जा सकती है. -
फ़ाइल-स्तर पर
swiftmoduleके हिस्से के रूप में partial बनाए जाते हैं, और link करते समय पूरे module को जोड़ दिया जाता है. -
Java Gradle build के मामले की तरह ISP में बाँट देने से यह interfaces में विभाजित नहीं हो जाता और केवल बदली हुई फ़ाइलें ही build नहीं होतीं.
-
Swift source file को compile करते समय implementation भाग बदला हो तो वह फ़ाइल फिर से compile होती है, लेकिन dependencies को मुख्यतः declarations के आधार पर पहचाना जाता है, इसलिए केवल वही मामले दोबारा build होते हैं जो declaration बदली हुई फ़ाइल पर निर्भर करते हैं.
अभी कोई टिप्पणी नहीं है.