Cómo funciona la compilación incremental de Swift
(medium.com)Se puede resumir de la siguiente manera.
-
Desde Xcode 10, la compilación incremental funciona por archivo sobre la base de llbuild.
-
En los logs de compilación de Xcode puede parecer que no hay diferencia, pero se analizan las dependencias, se comparan los valores hash de la interfaz y se generan los archivos objeto
.o. Por supuesto, si cambia la implementación, se vuelven a generar. -
Si el valor hash de la interfaz de otro archivo fuente del que depende es el mismo, no se genera el archivo objeto.
-
La información de dependencias de los archivos Swift se puede revisar en el archivo
.swiftdeps. -
Se crea una parte parcial de
swiftmodulepor archivo, y al enlazar se une el módulo completo. -
A diferencia de un build de Java con Gradle, aunque se divida con ISP, eso no significa que se separe por interfaces ni que solo se compilen los archivos con cambios.
-
Al compilar archivos fuente de Swift, los archivos cuya implementación cambió se recompilan, pero como las dependencias se determinan principalmente en torno a las declaraciones, solo se vuelven a compilar los casos que dependen de archivos cuyas declaraciones cambiaron.
Aún no hay comentarios.