Skip to content

Commit ec059f3

Browse files
committed
Enable ExperientalPrivateIntransitiveDependencies By Default
"Private Intransitive Dependencies" differ from the status quo by no longer requiring the concept of a "cascading dependency edge". This is because the request evaluator automatically tracks, records, and replays the names looked up while a given file is being processed by the frontend. To remove transitivity from the swiftdeps files, each primary file processed by the Swift frontend is charged for *all* name lookups that occur while it is being processed. Further, because of the replay step, lookups hidden behind cached requests are now entirely visible to the dependency tracking code. The net result is that all formerly implicit transitivity in the dependency graph has been made completely explicit and direct. This establishes a tighter overall dependency structure for each individual file, and results in a remarkable decrease in the amount of files that are rebuilt for any particular change. This feature can be disabled via -disable-experimental-private-intransitive-dependencies, which will cause a return to the cascading status quo.
1 parent fdf31c8 commit ec059f3

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

include/swift/Basic/LangOptions.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ namespace swift {
367367

368368
/// Whether to enable a more aggressive mode of incremental dependency
369369
/// gathering that never captures cascading edges.
370-
bool EnableExperientalPrivateIntransitiveDependencies = false;
370+
bool EnableExperientalPrivateIntransitiveDependencies = true;
371371

372372
/// Enable verification when every SubstitutionMap is constructed.
373373
bool VerifyAllSubstitutionMaps = false;

0 commit comments

Comments
 (0)