@@ -77,7 +77,7 @@ documentation, please create a thread on the Swift forums under the
77
77
How to build Swift on Windows using Visual Studio.
78
78
- [ WindowsCrossCompile.md] ( /docs/WindowsCrossCompile.md ) :
79
79
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 ) :
81
81
Describes how to run [ include-what-you-use] ( https://include-what-you-use.org )
82
82
on the Swift project.
83
83
@@ -86,6 +86,8 @@ documentation, please create a thread on the Swift forums under the
86
86
- [ ByteTree.md] ( /docs/ByteTree.md ) :
87
87
Describes the ByteTree binary format used for serializing syntax trees
88
88
in ` libSyntax ` .
89
+ - [ WebAssembly.md] ( /docs/WebAssembly.md ) :
90
+ Explains some decisions that were made while implementing the WebAssembly target.
89
91
90
92
### Compiler and Runtime Subsystems
91
93
@@ -138,10 +140,11 @@ documentation, please create a thread on the Swift forums under the
138
140
### Language subsystems
139
141
140
142
- Swift's Object Model
141
- - [ LogicalObjects.md] ( ) :
143
+ - [ LogicalObjects.md] ( /docs/LogicalObjects.md ) :
142
144
Describes the differences between logical and physical objects and
143
145
introduces materialization and writeback.
144
- - [ MutationModel.rst] ( ) <!-- : NOTE: Outdated -->
146
+ - [ MutationModel.rst] ( /docs/MutationModel.rst ) : Outdated.
147
+ <!-- NOTE: Outdated -->
145
148
- [ DocumentationComments.md] ( /docs/DocumentationComments.md ) :
146
149
Describes the format of Swift's documentation markup, including
147
150
specially-recognized sections.
@@ -174,6 +177,29 @@ documentation, please create a thread on the Swift forums under the
174
177
<!-- NOTE: Outdated -->
175
178
- [ Lexicon.md] ( /docs/Lexicon.md ) :
176
179
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.
177
203
178
204
## Recommended Practices
179
205
@@ -188,7 +214,7 @@ documentation, please create a thread on the Swift forums under the
188
214
- [ StdlibAPIGuidelines.rst] ( /docs/StdlibAPIGuidelines.rst ) :
189
215
Provides guidelines for designing stdlib APIs.
190
216
<!-- NOTE: Outdated -->
191
- - [ StandardLibraryProgrammersManual] ( /docs/StandardLibraryProgrammersManual.md ) :
217
+ - [ StandardLibraryProgrammersManual.md ] ( /docs/StandardLibraryProgrammersManual.md ) :
192
218
Provides guidelines for working code in the stdlib.
193
219
- [ OptimizationTips.rst] ( /docs/OptimizationTips.rst ) :
194
220
Provides guidelines for writing high-performance Swift code.
@@ -199,7 +225,7 @@ documentation, please create a thread on the Swift forums under the
199
225
200
226
- [ Branches.md] ( /docs/Branches.md ) :
201
227
Describes how different branches are setup and what the automerger does.
202
- - [ ContinuousIntegration.md] ( ContinuousIntegration.md ) :
228
+ - [ ContinuousIntegration.md] ( /docs/ ContinuousIntegration.md) :
203
229
Describes the continuous integration setup, including the ` @swift_ci ` bot.
204
230
205
231
## Evolution Documents
@@ -211,9 +237,9 @@ documentation, please create a thread on the Swift forums under the
211
237
Describes the goals and design for ABI stability.
212
238
- [ LibraryEvolutionManifesto.md] ( /docs/LibraryEvolutionManifesto.md ) :
213
239
Describes the goals and design for Library Evolution.
214
- - [ BuildManifesto.md] ( BuildManifesto.md ) :
240
+ - [ BuildManifesto.md] ( /docs/ BuildManifesto.md) :
215
241
Provides an outline for modularizing the build system for the Swift toolchain.
216
- - [ CppInteroperabilityManifesto.md] ( CppInteroperabilityManifesto.md ) :
242
+ - [ CppInteroperabilityManifesto.md] ( /docs/ CppInteroperabilityManifesto.md) :
217
243
Describes the motivation and design for first-class Swift-C++ interoperability.
218
244
- [ DifferentiableProgramming.md] ( /docs/DifferentiableProgramming.md ) :
219
245
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.
232
258
You can see the status of different proposals at
233
259
< https://apple.github.io/swift-evolution/ > .
234
260
235
- [ swift-evolution ] : https://github.com/apple/swift-evolution
261
+ [ apple/ swift-evolution] : https://github.com/apple/swift-evolution
236
262
237
263
### Surveys
238
264
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).
239
268
- [ ErrorHandlingRationale.rst] ( /docs/ErrorHandlingRationale.rst ) :
240
269
Surveys error-handling in a variety of languages, and describes the rationale
241
270
behind the design of error handling in Swift.
@@ -247,10 +276,10 @@ You can see the status of different proposals at
247
276
### Archive
248
277
249
278
These 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).
251
280
They are preserved mostly for historical interest.
252
281
253
- - [ AccessControl.rst] ( /docs/AccessControl.swift )
282
+ - [ AccessControl.rst] ( /docs/AccessControl.rst )
254
283
- [ Arrays.rst] ( /docs/Arrays.rst )
255
284
<!-- Has additional notes on bridging that may be of general interest? -->
256
285
- [ Generics.rst] ( /docs/Generics.rst )
@@ -262,7 +291,7 @@ They are preserved mostly for historical interest.
262
291
263
292
## External Resources
264
293
265
- External resources are listed in [ docs/ ExternalResources.md] ( ExternalResources.md ) .
294
+ External resources are listed in [ ExternalResources.md] ( /docs/ ExternalResources.md) .
266
295
These cover a variety of topics,
267
296
such as the design of different aspects of the Swift compiler and runtime
268
297
and contributing to the project more effectively.
@@ -323,9 +352,9 @@ provide greater clarity to contributors wanting to add new documentation.
323
352
` @_hasMissingDesignatedInitializers ` . Some of this is covered in
324
353
[ TSPL's initialization section] [ ] but that doesn't include newly added
325
354
attributes.
326
- - [ Modules.rst] ( /docs/Module .rst ) : for Swift pre-1.0.
355
+ - [ Modules.rst] ( /docs/Modules .rst ) : for Swift pre-1.0.
327
356
- [ Swift3Compatibility.md] ( /docs/Swift3Compatibility.md ) :
328
357
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.
330
359
331
360
[ TSPL's initialization section ] : https://docs.swift.org/swift-book/LanguageGuide/Initialization.html
0 commit comments