@@ -135,11 +135,24 @@ https://medium.com/kinandcartacreated/contributing-to-swift-part-2-efebcf7b6c93
135
135
136
136
## Code generation, runtime and ABI
137
137
138
- - The Swift Runtime ([ Part 1: Heap Objects] [ ] , [ Part 2: Type Layout] [ ] )
139
- by Jordan Rose (blog post series, Aug-Sep 2020): This blog post series
140
- describes the runtime layout for classes, closures and structs, as well
141
- as basic runtime functionality such as retain/release that needs to be
142
- handled when porting Swift to a new platform, such as [ Mac OS 9] [ ] .
138
+ - [ The Swift Runtime] [ ] by Jordan Rose (blog post series, Aug-Oct 2020):
139
+ This blog post series describes the runtime layout for different structures,
140
+ runtime handling for metadata, as well as basic runtime functionality such
141
+ as retain/release that needs to be handled when porting Swift to a new
142
+ platform, such as [ Mac OS 9] [ ] .
143
+ - [ Part 1: Heap Objects] [ ]
144
+ - [ Part 2: Type Layout] [ ]
145
+ - [ Part 3: Type Metadata] [ ]
146
+ - [ Part 4: Uniquing Caches] [ ]
147
+ - [ Part 5: Class Metadata] [ ]
148
+ - [ Part 6: Class Metadata Initialization] [ ]
149
+ - [ Part 7: Enums] [ ]
150
+ - [ Implementing the Swift Runtime in Swift] [ ]
151
+ by JP Simard and Jesse Squires with Jordan Rose (podcast episode, Oct 2020):
152
+ This episode describes Jordan's effort to port Swift to Mac OS 9.
153
+ It touches on a wide variety of topics, such as ObjC interop, memory layout
154
+ guarantees, performance, library evolution, writing low-level code in Swift,
155
+ the workflow of porting Swift to a new platform and the design of Swift.
143
156
- [ How Swift Achieved Dynamic Linking Where Rust Couldn't] [ ] by Alexis
144
157
Beingessner (blog post, Nov 2019): This blog post describes Swift's approach
145
158
for compiling polymorphic functions, contrasting it with the strategy used by
@@ -174,9 +187,16 @@ https://medium.com/kinandcartacreated/contributing-to-swift-part-2-efebcf7b6c93
174
187
value witness tables, type metadata, abstraction patterns, reabstraction,
175
188
reabstraction thunks and protocol witness tables.
176
189
190
+ [ Mac OS 9 ] : https://belkadan.com/blog/2020/04/Swift-on-Mac-OS-9/
191
+ [ The Swift Runtime ] : https://belkadan.com/blog/tags/swift-runtime/
177
192
[ Part 1: Heap Objects ] : https://belkadan.com/blog/2020/08/Swift-Runtime-Heap-Objects/
178
193
[ Part 2: Type Layout ] : https://belkadan.com/blog/2020/09/Swift-Runtime-Type-Layout/
179
- [ Mac OS 9 ] : https://belkadan.com/blog/2020/04/Swift-on-Mac-OS-9/
194
+ [ Part 3: Type Metadata ] : https://belkadan.com/blog/2020/09/Swift-Runtime-Type-Metadata/
195
+ [ Part 4: Uniquing Caches ] : https://belkadan.com/blog/2020/09/Swift-Runtime-Uniquing-Caches/
196
+ [ Part 5: Class Metadata ] : https://belkadan.com/blog/2020/09/Swift-Runtime-Class-Metadata/
197
+ [ Part 6: Class Metadata Initialization ] : https://belkadan.com/blog/2020/10/Swift-Runtime-Class-Metadata-Initialization/
198
+ [ Part 7: Enums ] : https://belkadan.com/blog/2020/10/Swift-Runtime-Enums/
199
+ [ Implementing the Swift Runtime in Swift ] : https://spec.fm/podcasts/swift-unwrapped/1DMLbJg5
180
200
[ How Swift Achieved Dynamic Linking Where Rust Couldn't ] : https://gankra.github.io/blah/swift-abi/
181
201
[ arm64e: An ABI for Pointer Authentication ] : https://youtu.be/C1nZvpEBfYA
182
202
[ Exploiting The Swift ABI ] : https://youtu.be/0rHG_Pa86oA
0 commit comments