4 pontos por godrm 2021-03-25 | Ainda não há comentários. | Compartilhar no WhatsApp

Pode ser resumido da seguinte forma.

  • Desde o Xcode 10, os builds incrementais funcionam por arquivo com base no llbuild.

  • Nos logs de build do Xcode, pode parecer que não há diferença, mas o sistema analisa as dependências, compara valores de hash da interface e gera arquivos de objeto .o. Claro, se a implementação mudar, eles serão gerados novamente.

  • Se o valor de hash da interface de outro arquivo-fonte do qual ele depende for o mesmo, o arquivo de objeto não é gerado.

  • As informações de dependência de arquivos Swift podem ser verificadas no arquivo .swiftdeps.

  • Uma parte do swiftmodule é criada por arquivo como partial, e, no momento do link, o módulo inteiro é unido.

  • Diferentemente de um build Java com Gradle, dividir por ISP não significa que ele será separado por interface e que apenas os arquivos alterados serão compilados.

  • Ao compilar arquivos-fonte Swift, os arquivos cuja implementação mudou são recompilados, mas, como as dependências são identificadas com foco nas declarações, só são recompilados os casos que dependem de arquivos cujas declarações mudaram.

Ainda não há comentários.

Ainda não há comentários.