4 puntos por godrm 2021-03-25 | Aún no hay comentarios. | Compartir por WhatsApp

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 swiftmodule por 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.

Aún no hay comentarios.