Soy un principiante make
y me pregunto cuándo usarlo make clean
.
Un colega me dijo que las compilaciones incrementales make
se basan en las marcas de tiempo de los archivos. Por lo tanto, si revisa una versión anterior de un archivo en su VCS, tendrá una marca de tiempo "antigua" y se marcará como "no es necesario volver a compilar este archivo". Entonces, ese archivo no se incluiría en la próxima compilación.
Según ese mismo colega, sería una razón para usar make clean
.
De todos modos, recibí la respuesta a la pregunta "cuándo usar make clean
" de otras preguntas de StackExchange, pero mi otra pregunta es:
¿Por qué las compilaciones incrementales que se
make
basan en marcas de tiempo de archivos y no en SHA-1 por ejemplo? Git, por ejemplo, muestra que podemos determinar con éxito si un archivo se modificó utilizando el SHA-1.
¿Es por problemas de velocidad?
make
software, entonces su software no se romperá, sin embargo, make
hace un esfuerzo por tener compatibilidad con versiones anteriores. Cambiar el comportamiento central sin una buena razón es más o menos lo contrario de eso. Y las fechas muestran por qué no se hizo originalmente para usar SHA-1, o por qué no fue fácil adaptarlo cuando estuvo disponible ( make
ya tenía décadas de antigüedad).
make
fue creado en los años 70. SHA-1 fue creado en los años 90. Git fue creado en los años 00. Lo último que desea es que algunas compilaciones oscuras que estuvieron funcionando durante 30 años fallaran repentinamente porque alguien decidió modernizarse con un sistema probado.