@@ -69,7 +69,7 @@ documentation, please create a thread on the Swift forums under the
69
69
How to build Swift on Windows using Visual Studio.
70
70
- [ WindowsCrossCompile.md] ( /docs/WindowsCrossCompile.md ) :
71
71
How to cross compile Swift for Windows on a non-Windows host OS.
72
- - [ RunningIncludeWhatYouUse.md] ( /docs/RunningIncludeWhatYouUse.md ) :
72
+ - [ RunningIncludeWhatYouUse.md] ( /docs/HowToGuides/ RunningIncludeWhatYouUse.md ) :
73
73
Describes how to run [ include-what-you-use] ( https://include-what-you-use.org )
74
74
on the Swift project.
75
75
@@ -78,6 +78,8 @@ documentation, please create a thread on the Swift forums under the
78
78
- [ ByteTree.md] ( /docs/ByteTree.md ) :
79
79
Describes the ByteTree binary format used for serializing syntax trees
80
80
in ` libSyntax ` .
81
+ - [ WebAssembly.md] ( /docs/WebAssembly.md ) :
82
+ Explains some decisions that were made while implementing the WebAssembly target.
81
83
82
84
### Compiler and Runtime Subsystems
83
85
@@ -130,10 +132,11 @@ documentation, please create a thread on the Swift forums under the
130
132
### Language subsystems
131
133
132
134
- Swift's Object Model
133
- - [ LogicalObjects.md] ( ) :
135
+ - [ LogicalObjects.md] ( /docs/LogicalObjects.md ) :
134
136
Describes the differences between logical and physical objects and
135
137
introduces materialization and writeback.
136
- - [ MutationModel.rst] ( ) <!-- : NOTE: Outdated -->
138
+ - [ MutationModel.rst] ( /docs/MutationModel.rst ) : Outdated.
139
+ <!-- NOTE: Outdated -->
137
140
- [ DocumentationComments.md] ( /docs/DocumentationComments.md ) :
138
141
Describes the format of Swift's documentation markup, including
139
142
specially-recognized sections.
@@ -166,6 +169,29 @@ documentation, please create a thread on the Swift forums under the
166
169
<!-- NOTE: Outdated -->
167
170
- [ Lexicon.md] ( /docs/Lexicon.md ) :
168
171
Canonical reference for terminology used throughout the project.
172
+
173
+ ### ABI
174
+
175
+ - [ GenericSignature.md] ( /docs/ABI/GenericSignature.md ) :
176
+ Describes what generic signatures are and how they are used in the ABI,
177
+ including the algorithms for minimization and canonicalization.
178
+ - [ KeyPaths.md] ( /docs/ABI/KeyPaths.md ) :
179
+ Describes the layout of key path objects (instantiated by the runtime,
180
+ and therefore not strictly ABI). \
181
+ ** TODO:** The layout of key path patterns (emitted by the compiler,
182
+ to represent key path literals) isn't documented yet.
183
+ - [ Mangling.rst] ( /docs/ABI/Mangling.rst ) :
184
+ Describes the stable mangling scheme, which produces unique symbols for
185
+ ABI-public declarations.
186
+ - [ RegisterUsage.md] ( /docs/ABI/RegisterUsage.md ) :
187
+ Summarizes the register allocation for ARM64 and x86_64 calling conventions,
188
+ including the context register (self) and error return register.
189
+ - [ TypeLayout.rst] ( /docs/ABI/TypeLayout.rst ) :
190
+ Describes the algorithms/strategies for fragile struct and tuple layout;
191
+ class layout; fragile enum layout; and existential container layout.
192
+ - [ TypeMetadata.rst] ( /docs/ABI/TypeMetadata.rst ) :
193
+ Describes the fields, values, and layout of metadata records, which can be
194
+ used (by reflection and debugger tools) to discover information about types.
169
195
170
196
## Recommended Practices
171
197
@@ -180,7 +206,7 @@ documentation, please create a thread on the Swift forums under the
180
206
- [ StdlibAPIGuidelines.rst] ( /docs/StdlibAPIGuidelines.rst ) :
181
207
Provides guidelines for designing stdlib APIs.
182
208
<!-- NOTE: Outdated -->
183
- - [ StandardLibraryProgrammersManual] ( /docs/StandardLibraryProgrammersManual.md ) :
209
+ - [ StandardLibraryProgrammersManual.md ] ( /docs/StandardLibraryProgrammersManual.md ) :
184
210
Provides guidelines for working code in the stdlib.
185
211
- [ OptimizationTips.rst] ( /docs/OptimizationTips.rst ) :
186
212
Provides guidelines for writing high-performance Swift code.
@@ -191,7 +217,7 @@ documentation, please create a thread on the Swift forums under the
191
217
192
218
- [ Branches.md] ( /docs/Branches.md ) :
193
219
Describes how different branches are setup and what the automerger does.
194
- - [ ContinuousIntegration.md] ( ContinuousIntegration.md ) :
220
+ - [ ContinuousIntegration.md] ( /docs/ ContinuousIntegration.md) :
195
221
Describes the continuous integration setup, including the ` @swift_ci ` bot.
196
222
197
223
## Evolution Documents
@@ -203,9 +229,9 @@ documentation, please create a thread on the Swift forums under the
203
229
Describes the goals and design for ABI stability.
204
230
- [ LibraryEvolutionManifesto.md] ( /docs/LibraryEvolutionManifesto.md ) :
205
231
Describes the goals and design for Library Evolution.
206
- - [ BuildManifesto.md] ( BuildManifesto.md ) :
232
+ - [ BuildManifesto.md] ( /docs/ BuildManifesto.md) :
207
233
Provides an outline for modularizing the build system for the Swift toolchain.
208
- - [ CppInteroperabilityManifesto.md] ( CppInteroperabilityManifesto.md ) :
234
+ - [ CppInteroperabilityManifesto.md] ( /docs/ CppInteroperabilityManifesto.md) :
209
235
Describes the motivation and design for first-class Swift-C++ interoperability.
210
236
- [ DifferentiableProgramming.md] ( /docs/DifferentiableProgramming.md ) :
211
237
Outlines a vision and design for first-class differentiable programming in Swift.
@@ -224,10 +250,13 @@ More recent proposals are located in the [apple/swift-evolution][] repository.
224
250
You can see the status of different proposals at
225
251
< https://apple.github.io/swift-evolution/ > .
226
252
227
- [ swift-evolution ] : https://github.com/apple/swift-evolution
253
+ [ apple/ swift-evolution] : https://github.com/apple/swift-evolution
228
254
229
255
### Surveys
230
256
257
+ - [ CallingConvention.rst] ( /docs/ABI/CallingConvention.rst ) :
258
+ This whitepaper discusses the Swift calling convention (high-level semantics;
259
+ ownership transfer; physical representation; function signature lowering).
231
260
- [ ErrorHandlingRationale.rst] ( /docs/ErrorHandlingRationale.rst ) :
232
261
Surveys error-handling in a variety of languages, and describes the rationale
233
262
behind the design of error handling in Swift.
@@ -239,10 +268,10 @@ You can see the status of different proposals at
239
268
### Archive
240
269
241
270
These documents are known to be out-of-date and are superseded by other
242
- documentation, primarily [ The Swift Programming Language (TSPL)] [ ] .
271
+ documentation, primarily [ The Swift Programming Language] [ ] (TSPL).
243
272
They are preserved mostly for historical interest.
244
273
245
- - [ AccessControl.rst] ( /docs/AccessControl.swift )
274
+ - [ AccessControl.rst] ( /docs/AccessControl.rst )
246
275
- [ Arrays.rst] ( /docs/Arrays.rst )
247
276
<!-- Has additional notes on bridging that may be of general interest? -->
248
277
- [ Generics.rst] ( /docs/Generics.rst )
@@ -254,7 +283,7 @@ They are preserved mostly for historical interest.
254
283
255
284
## External Resources
256
285
257
- External resources are listed in [ docs/ ExternalResources.md] ( ExternalResources.md ) .
286
+ External resources are listed in [ ExternalResources.md] ( /docs/ ExternalResources.md) .
258
287
These cover a variety of topics,
259
288
such as the design of different aspects of the Swift compiler and runtime
260
289
and contributing to the project more effectively.
@@ -315,9 +344,9 @@ provide greater clarity to contributors wanting to add new documentation.
315
344
` @_hasMissingDesignatedInitializers ` . Some of this is covered in
316
345
[ TSPL's initialization section] [ ] but that doesn't include newly added
317
346
attributes.
318
- - [ Modules.rst] ( /docs/Module .rst ) : for Swift pre-1.0.
347
+ - [ Modules.rst] ( /docs/Modules .rst ) : for Swift pre-1.0.
319
348
- [ Swift3Compatibility.md] ( /docs/Swift3Compatibility.md ) :
320
349
Discusses the Swift 3 -> Swift 4 migration.
321
- - [ StoredAndComputedVariables.rst] ( ) : for Swift pre-1.0.
350
+ - [ StoredAndComputedVariables.rst] ( /docs/StoredAndComputedVariables.rst ) : for Swift pre-1.0.
322
351
323
352
[ TSPL's initialization section ] : https://docs.swift.org/swift-book/LanguageGuide/Initialization.html
0 commit comments