Eu sou iniciante make
e estou pensando em quando usar make clean
.
Um colega me disse que as compilações incrementais make
são baseadas nos registros de data e hora dos arquivos. Portanto, se você fizer o check-out de uma versão antiga de um arquivo no seu VCS, ele terá um carimbo de data / hora "antigo" e será marcado como "não há necessidade de recompilar esse arquivo". Em seguida, esse arquivo não seria incluído na próxima compilação.
Segundo o mesmo colega, seria uma razão para usar make clean
.
De qualquer forma, obtive a resposta para a pergunta "quando usar make clean
" de outras perguntas do StackExchange, mas minha outra pergunta é:
Por que construções incrementais usando
make
contam com registros de data e hora de arquivos e não no SHA-1, por exemplo? O Git, por exemplo, mostra que podemos determinar com êxito se um arquivo foi modificado usando o SHA-1.
É por problemas de velocidade?
make
seu software, ele não quebrará, no entanto, make
faz um esforço para ter compatibilidade com versões anteriores em novas versões. Mudar o comportamento do núcleo sem uma boa razão é praticamente o oposto disso. E as datas mostram por que não foi originalmente feito para usar o SHA-1 ou por que não foi fácil adaptá-lo quando ficou disponível ( make
já tinha décadas antes).
make
foi criado nos anos 70. O SHA-1 foi criado nos anos 90. O Git foi criado nos anos 00. A última coisa que você deseja é que algumas construções obscuras que estavam trabalhando há 30 anos falhem repentinamente porque alguém decidiu se modernizar com um sistema testado e comprovado.