@@ -77,7 +77,7 @@ documentation, please create a thread on the Swift forums under the
7777 How to build Swift on Windows using Visual Studio.
7878 - [ WindowsCrossCompile.md] ( /docs/WindowsCrossCompile.md ) :
7979 How to cross compile Swift for Windows on a non-Windows host OS.
80- - [ RunningIncludeWhatYouUse.md] ( /docs/RunningIncludeWhatYouUse.md ) :
80+ - [ RunningIncludeWhatYouUse.md] ( /docs/HowToGuides/ RunningIncludeWhatYouUse.md ) :
8181 Describes how to run [ include-what-you-use] ( https://include-what-you-use.org )
8282 on the Swift project.
8383
@@ -86,6 +86,8 @@ documentation, please create a thread on the Swift forums under the
8686- [ ByteTree.md] ( /docs/ByteTree.md ) :
8787 Describes the ByteTree binary format used for serializing syntax trees
8888 in ` libSyntax ` .
89+ - [ WebAssembly.md] ( /docs/WebAssembly.md ) :
90+ Explains some decisions that were made while implementing the WebAssembly target.
8991
9092### Compiler and Runtime Subsystems
9193
@@ -138,10 +140,11 @@ documentation, please create a thread on the Swift forums under the
138140### Language subsystems
139141
140142- Swift's Object Model
141- - [ LogicalObjects.md] ( ) :
143+ - [ LogicalObjects.md] ( /docs/LogicalObjects.md ) :
142144 Describes the differences between logical and physical objects and
143145 introduces materialization and writeback.
144- - [ MutationModel.rst] ( ) <!-- : NOTE: Outdated -->
146+ - [ MutationModel.rst] ( /docs/MutationModel.rst ) : Outdated.
147+ <!-- NOTE: Outdated -->
145148- [ DocumentationComments.md] ( /docs/DocumentationComments.md ) :
146149 Describes the format of Swift's documentation markup, including
147150 specially-recognized sections.
@@ -174,6 +177,29 @@ documentation, please create a thread on the Swift forums under the
174177 <!-- NOTE: Outdated -->
175178- [ Lexicon.md] ( /docs/Lexicon.md ) :
176179 Canonical reference for terminology used throughout the project.
180+
181+ ### ABI
182+
183+ - [ GenericSignature.md] ( /docs/ABI/GenericSignature.md ) :
184+ Describes what generic signatures are and how they are used in the ABI,
185+ including the algorithms for minimization and canonicalization.
186+ - [ KeyPaths.md] ( /docs/ABI/KeyPaths.md ) :
187+ Describes the layout of key path objects (instantiated by the runtime,
188+ and therefore not strictly ABI). \
189+ ** TODO:** The layout of key path patterns (emitted by the compiler,
190+ to represent key path literals) isn't documented yet.
191+ - [ Mangling.rst] ( /docs/ABI/Mangling.rst ) :
192+ Describes the stable mangling scheme, which produces unique symbols for
193+ ABI-public declarations.
194+ - [ RegisterUsage.md] ( /docs/ABI/RegisterUsage.md ) :
195+ Summarizes the register allocation for ARM64 and x86_64 calling conventions,
196+ including the context register (self) and error return register.
197+ - [ TypeLayout.rst] ( /docs/ABI/TypeLayout.rst ) :
198+ Describes the algorithms/strategies for fragile struct and tuple layout;
199+ class layout; fragile enum layout; and existential container layout.
200+ - [ TypeMetadata.rst] ( /docs/ABI/TypeMetadata.rst ) :
201+ Describes the fields, values, and layout of metadata records, which can be
202+ used (by reflection and debugger tools) to discover information about types.
177203
178204## Recommended Practices
179205
@@ -188,7 +214,7 @@ documentation, please create a thread on the Swift forums under the
188214- [ StdlibAPIGuidelines.rst] ( /docs/StdlibAPIGuidelines.rst ) :
189215 Provides guidelines for designing stdlib APIs.
190216 <!-- NOTE: Outdated -->
191- - [ StandardLibraryProgrammersManual] ( /docs/StandardLibraryProgrammersManual.md ) :
217+ - [ StandardLibraryProgrammersManual.md ] ( /docs/StandardLibraryProgrammersManual.md ) :
192218 Provides guidelines for working code in the stdlib.
193219- [ OptimizationTips.rst] ( /docs/OptimizationTips.rst ) :
194220 Provides guidelines for writing high-performance Swift code.
@@ -199,7 +225,7 @@ documentation, please create a thread on the Swift forums under the
199225
200226- [ Branches.md] ( /docs/Branches.md ) :
201227 Describes how different branches are setup and what the automerger does.
202- - [ ContinuousIntegration.md] ( ContinuousIntegration.md ) :
228+ - [ ContinuousIntegration.md] ( /docs/ ContinuousIntegration.md) :
203229 Describes the continuous integration setup, including the ` @swift_ci ` bot.
204230
205231## Evolution Documents
@@ -211,9 +237,9 @@ documentation, please create a thread on the Swift forums under the
211237 Describes the goals and design for ABI stability.
212238 - [ LibraryEvolutionManifesto.md] ( /docs/LibraryEvolutionManifesto.md ) :
213239 Describes the goals and design for Library Evolution.
214- - [ BuildManifesto.md] ( BuildManifesto.md ) :
240+ - [ BuildManifesto.md] ( /docs/ BuildManifesto.md) :
215241 Provides an outline for modularizing the build system for the Swift toolchain.
216- - [ CppInteroperabilityManifesto.md] ( CppInteroperabilityManifesto.md ) :
242+ - [ CppInteroperabilityManifesto.md] ( /docs/ CppInteroperabilityManifesto.md) :
217243 Describes the motivation and design for first-class Swift-C++ interoperability.
218244- [ DifferentiableProgramming.md] ( /docs/DifferentiableProgramming.md ) :
219245 Outlines a vision and design for first-class differentiable programming in Swift.
@@ -232,10 +258,13 @@ More recent proposals are located in the [apple/swift-evolution][] repository.
232258You can see the status of different proposals at
233259< https://apple.github.io/swift-evolution/ > .
234260
235- [ swift-evolution ] : https://github.com/apple/swift-evolution
261+ [ apple/ swift-evolution] : https://github.com/apple/swift-evolution
236262
237263### Surveys
238264
265+ - [ CallingConvention.rst] ( /docs/ABI/CallingConvention.rst ) :
266+ This whitepaper discusses the Swift calling convention (high-level semantics;
267+ ownership transfer; physical representation; function signature lowering).
239268- [ ErrorHandlingRationale.rst] ( /docs/ErrorHandlingRationale.rst ) :
240269 Surveys error-handling in a variety of languages, and describes the rationale
241270 behind the design of error handling in Swift.
@@ -247,10 +276,10 @@ You can see the status of different proposals at
247276### Archive
248277
249278These documents are known to be out-of-date and are superseded by other
250- documentation, primarily [ The Swift Programming Language (TSPL)] [ ] .
279+ documentation, primarily [ The Swift Programming Language] [ ] (TSPL).
251280They are preserved mostly for historical interest.
252281
253- - [ AccessControl.rst] ( /docs/AccessControl.swift )
282+ - [ AccessControl.rst] ( /docs/AccessControl.rst )
254283- [ Arrays.rst] ( /docs/Arrays.rst )
255284 <!-- Has additional notes on bridging that may be of general interest? -->
256285- [ Generics.rst] ( /docs/Generics.rst )
@@ -262,7 +291,7 @@ They are preserved mostly for historical interest.
262291
263292## External Resources
264293
265- External resources are listed in [ docs/ ExternalResources.md] ( ExternalResources.md ) .
294+ External resources are listed in [ ExternalResources.md] ( /docs/ ExternalResources.md) .
266295These cover a variety of topics,
267296such as the design of different aspects of the Swift compiler and runtime
268297and contributing to the project more effectively.
@@ -323,9 +352,9 @@ provide greater clarity to contributors wanting to add new documentation.
323352 ` @_hasMissingDesignatedInitializers ` . Some of this is covered in
324353 [ TSPL's initialization section] [ ] but that doesn't include newly added
325354 attributes.
326- - [ Modules.rst] ( /docs/Module .rst ) : for Swift pre-1.0.
355+ - [ Modules.rst] ( /docs/Modules .rst ) : for Swift pre-1.0.
327356- [ Swift3Compatibility.md] ( /docs/Swift3Compatibility.md ) :
328357 Discusses the Swift 3 -> Swift 4 migration.
329- - [ StoredAndComputedVariables.rst] ( ) : for Swift pre-1.0.
358+ - [ StoredAndComputedVariables.rst] ( /docs/StoredAndComputedVariables.rst ) : for Swift pre-1.0.
330359
331360[ TSPL's initialization section ] : https://docs.swift.org/swift-book/LanguageGuide/Initialization.html
0 commit comments