# NOTE: the compiler is allowed to cache the executable generated for
# *filename* and only recompile it if any of the files it depends on changes
# (their modified time). This is why it's **strongly discouraged** to use a program
# for `run` that changes in subsequent compilations (for example, if it executes
# shell commands at compile time, or other macro run programs). It's also strongly
# discouraged to have a macro run program take a lot of time, because this will
# slow down compilation times. Reading files is OK, opening an HTTP connection
# at compile-time will most likely result in very slow compilations.
def run(filename, *args) : MacroId
I think this might have been where I got the Idea that it would be cached from.
It’s about the “run” method, and not a general thing.
But out of curiosity, if I compile a project, then commit the last changes, then compile again without changing any files, would the new executable pick up the changed commit hash even though no source file was changed?