This gives our cache tags for compile caching.
This gives our cache tags for compile caching. The cache tags are a hash of classpath, previous commands (in-same-script), and the block-code. Previous commands are hashed in the wrapper names, which are contained in imports, so we don't need to pass them explicitly.
Recursively mtimes things, with the sole purpose of providing a number that will change if that file changes or that folder's contents changes
Recursively mtimes things, with the sole purpose of providing a number that will change if that file changes or that folder's contents changes
Ensure we include the file paths within a folder as part of the folder signature, as file moves often do not update the mtime but we want to trigger a "something changed" event anyway