Skip to content

Commit 290923c

Browse files
[docs] Add links to 'The Swift runtime' posts + podcast episode. (#34446)
Co-authored-by: Ben Rimmington <[email protected]>
1 parent a07dda6 commit 290923c

File tree

1 file changed

+26
-6
lines changed

1 file changed

+26
-6
lines changed

docs/ExternalResources.md

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -135,11 +135,24 @@ https://medium.com/kinandcartacreated/contributing-to-swift-part-2-efebcf7b6c93
135135

136136
## Code generation, runtime and ABI
137137

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.
143156
- [How Swift Achieved Dynamic Linking Where Rust Couldn't][] by Alexis
144157
Beingessner (blog post, Nov 2019): This blog post describes Swift's approach
145158
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
174187
value witness tables, type metadata, abstraction patterns, reabstraction,
175188
reabstraction thunks and protocol witness tables.
176189

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/
177192
[Part 1: Heap Objects]: https://belkadan.com/blog/2020/08/Swift-Runtime-Heap-Objects/
178193
[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
180200
[How Swift Achieved Dynamic Linking Where Rust Couldn't]: https://gankra.github.io/blah/swift-abi/
181201
[arm64e: An ABI for Pointer Authentication]: https://youtu.be/C1nZvpEBfYA
182202
[Exploiting The Swift ABI]: https://youtu.be/0rHG_Pa86oA

0 commit comments

Comments
 (0)