Soy un principiante makey me pregunto cuándo usarlo make clean.
Un colega me dijo que las compilaciones incrementales makese 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
makebasan 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?
makesoftware, entonces su software no se romperá, sin embargo, makehace 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 ( makeya tenía décadas de antigüedad).
makefue 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.