Skip to content

Commit 41b976f

Browse files
committed
Drop "cascading" and "private" dependency from the lexicon
This is no longer a meaningful distinction.
1 parent 3cee2af commit 41b976f

File tree

2 files changed

+0
-51
lines changed

2 files changed

+0
-51
lines changed

docs/DependencyAnalysis.md

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -56,33 +56,6 @@ Note:
5656
> may change its members drastically.
5757
5858

59-
Cascading vs. Non-Cascading Dependencies
60-
========================================
61-
62-
If file A depends on file B, and file B depends on file C, does file A depend
63-
on file C? The answer is: maybe! It depends how file B is using file C. If all
64-
uses are inside function bodies, for example, then changing file C only
65-
requires rebuilding file B, not file A. The terminology here is that file B has
66-
a *non-cascading* dependency on file C.
67-
68-
By contrast, if changing file C affects the interface of file B, then the
69-
dependency is said to be *cascading,* and changing file C would require
70-
rebuilding both file B and file A.
71-
72-
The various dependency tracking throughout the compiler will look at the
73-
context in which information is being used and attempt to determine whether or
74-
not a particular dependency should be considered cascading. If there's not
75-
enough context to decide, the compiler has to go with the conservative choice
76-
and record it as cascading.
77-
78-
79-
Note:
80-
81-
> In the current on-disk representation of dependency information, cascading
82-
> dependencies are the default. Non-cascading dependencies are marked
83-
> `private` by analogy with the Swift `private` keyword.
84-
85-
8659
External Dependencies
8760
=====================
8861

docs/Lexicon.md

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -100,18 +100,6 @@ These can usually be directly compared to test whether two types are the
100100
same; the exception is when generics get involved. In this case you'll need
101101
a [generic environment](#generic-environment). Contrast with [sugared type](#sugared-type).
102102

103-
## cascading dependency
104-
105-
A kind of dependency edge relevant to the incremental name tracking
106-
subsystem. A cascading dependency (as opposed to a
107-
[private dependency](#private-dependency) requires the Swift driver to
108-
transitively consider dependency edges in the file that defines the used
109-
name when incremental compilation is enabled. A cascading dependency is much
110-
safer to produce than its private counterpart, but it comes at the cost of
111-
increased usage of compilation resources - even if those resources are being
112-
wasted on rebuilding a file that didn't actually require rebuilding.
113-
See [DependencyAnalysis.md](DependencyAnalysis.md).
114-
115103
## Clang importer
116104

117105
The part of the compiler that reads C and Objective-C declarations and
@@ -452,18 +440,6 @@ The file currently being compiled, as opposed to the other files that are
452440
only needed for context. See also
453441
[Whole-Module Optimization](#wmo-whole-module-optimization).
454442

455-
## private dependency
456-
457-
A kind of dependency edge relevant to the incremental name tracking
458-
subsystem. A private dependency (as opposed to a
459-
[cascading dependency](#cascading-dependency)) declares a dependency edge
460-
from one file to a name referenced in that file that does not
461-
require further transitive evaluation of dependency edges by the Swift
462-
driver. Private dependencies are therefore cheaper than cascading
463-
dependencies, but must be used with the utmost care or dependent files will
464-
fail to rebuild and the result will most certainly be a miscompile.
465-
See [DependencyAnalysis](DependencyAnalysis.md).
466-
467443
## QoI
468444

469445
"Quality of implementation." The term is meant to describe not how

0 commit comments

Comments
 (0)