@@ -162,6 +162,25 @@ written "dupe". Pronounced the same way as the first syllable of
162162A value whose type is a protocol composition (including a single protocol
163163and * zero* protocols; the latter is the ` Any ` type).
164164
165+ ## explicit module build
166+
167+ A module build where all dependency modules (including Clang modules) are
168+ passed to the compiler explicitly by an external build system, including
169+ any modules in caches. See also: [ implicit module build] ( #implicit-module-build )
170+ and [ fast dependency scanner] ( #fast-dependency-scanner ) .
171+
172+ ## fast dependency scanner
173+
174+ A Swift compiler mode that scans a Swift module for import declarations and
175+ resolves which modules will be loaded. It is based on the
176+ [ clang-scan-deps] ( https://llvm.org/devmtg/2019-04/slides/TechTalk-Lorenz-clang-scan-deps_Fast_dependency_scanning_for_explicit_modules.pdf )
177+ library within Clang, for (Objective-)C modules, but is extended to also
178+ understand textual Swift modules (.swiftinterface files).
179+
180+ The fast dependency scanner outputs a graph of compilation steps which can be
181+ used by a build system to schedule
182+ [ explicit module builds] ( #explicit-module-builds ) .
183+
165184## fragile
166185
167186Describes a type or function where making changes will break binary
@@ -193,6 +212,17 @@ compared directly.
193212
194213[ "if and only if"] ( https://en.wikipedia.org/wiki/If_and_only_if ) . This term comes from mathematics.
195214
215+ ## implicit module build
216+
217+ A module build where the compiler is free to transparently build dependent
218+ modules (including Clang modules), and access modules in different caches as
219+ necessary. For example, if a textual Swift module (.swiftinterface file) for
220+ a dependency does not have a corresponding binary Swift module (.swiftmodulea
221+ file), the compiler may transparently build a binary Swift module from the
222+ textual one as a cache for future compiler jobs, without involving any external
223+ build system that invoked the compiler. See also:
224+ [ explicit module build] ( #explicit-module-build ) .
225+
196226## interface type
197227
198228The type of a value or declaration outside its generic context. These types
0 commit comments