Commit Graph

4 Commits

Author SHA1 Message Date
Saleem Abdulrasool
c8b3c8e01f tests: Win32 ParseableInterface.ModuleCache.SystemDependencies
Fix the path separator.  On Windows, there is an extra search path which
makes the strict next check fail.
2019-05-06 20:33:22 -07:00
Jordan Rose
b3c5a68acf [Serialization] Reduce file size by splitting dep dirnames from basenames
Dependency tracking for cached compiled modules (compiled from
swiftinterfaces) can lead to a high percentage of the module being
SDK-relative paths when -track-system-dependencies is on. Cut down on
this by storing directory names in a separate record that gets
referenced from each file dependency. (Since a lot of per-file
dependencies are header files in a common directory, this is a win.)

We can do something more clever in the future, but this is a
reasonable start for, say, the overlays.

rdar://problem/50449802
2019-05-04 10:47:46 -07:00
Nathan Hawes
8f8fee105e [ParseableInterface][test] Fix path matching in the SDKDependencies and SystemDependencies tests for Windows
Also don't use -n option of cp as it looks like it's not supported.
2019-04-03 12:55:51 -07:00
Jordan Rose
7f3344402c [ParseableInterface] Honor -track-system-dependencies when caching
One interesting thing here is that the decision of whether or not to
track system dependencies ends up going into the cache key for a
swiftmodule built from a parseable interface, because it affects that
module's up-to-date check. If we didn't include
-track-system-dependencies in the cache key, we could end up tracking
system dependencies for some modules but not others in the same build.

There's a bit of a bug here where they're /not/ honored if the
top-level invocation isn't tracking /any/ dependencies, but given
how uncommon this flag is in practice that's probably okay for now.

Still TODO: honor this for -build-swiftmodule-from-parseable-interface
as well. That's currently not tracking dependencies at all and it
probably should.
2019-04-03 06:34:29 -07:00