[ParseableInterface] Add ‘forwarding modules’

A ‘forwarding module’ is a YAML file that’s meant to stand in for a .swiftmodule file and provide an up-to-date description of its dependencies, always using modification times.

When a ‘prebuilt module’ is first loaded, we verify that it’s up-to-date by hashing all of its dependencies. Since this is orders of magnitude slower than reading mtimes, we’ll install a `forwarding module` containing the mtimes of the now-validated dependencies.
This commit is contained in:
Harlan Haskins
2019-02-13 17:36:55 -08:00
parent 67a447f15f
commit 366bbf48b9
17 changed files with 1315 additions and 703 deletions

File diff suppressed because it is too large Load Diff