The compile-versions script has no caching right now, which means every run will try solving and compilation anew for, in the worst case, every compiler * every package version, or hundreds of thousands of compiler / package / version combinations.
This PR adds caching to compile-versions based on the package, version, and compiler version, so we don't recompile already-visited package versions. In the future we could take this back out by using the metadata files themselves as the "cache", but until we add compiler versions to the metadata files this is the only way we have to save run results.
The
compile-versions
script has no caching right now, which means every run will try solving and compilation anew for, in the worst case, every compiler * every package version, or hundreds of thousands of compiler / package / version combinations.This PR adds caching to
compile-versions
based on the package, version, and compiler version, so we don't recompile already-visited package versions. In the future we could take this back out by using the metadata files themselves as the "cache", but until we add compiler versions to the metadata files this is the only way we have to save run results.