By changing the default to `true` we make it easier to build relocatable
packages from already existing ones when 1.11 lands.
This keyword was just added during 1.11, so its not yet too late to
change its default.
Continuation of #49866.
Fixes#52462
So far any `include_dependency` was tracked by `mtime`.
A package using `include_dependency` can't be relocated without
recompilation if the dependency also needs to be relocated.
With `include_dependency(path, track_content=true)` the tracking works
like for `include`,
i.e. recompilation is only triggered when the file's content changes.
In case `path` is a directory we use the string `join(readdir(path))` as
content.
---------
Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com>
String replacement with `@depot` when serializing out happens with any
paths that are located inside a `DEPOT_PATH` (first match wins). If no
match, then we emit the absolute file path as before. Right now we only
emit one token `@depot`.
String replacement of `@depot` when loading happens now on a `.ji` file
basis and only if all the listed include dependencies can be resolved to
files located in one and the same depot on `DEPOT_PATH` (again, first
match wins). If we can't resolve, then the cache is invalided with
`stale_cachefile`.