HackerTubewatch
Surprise me
Frame from 2017 LLVM Developers’ Meeting: “Implementing Swift Generics ” Plays via YouTube's privacy-enhanced embed

2017 LLVM Developers’ Meeting: “Implementing Swift Generics ”

4 videos recommended on HN
YouTube
2 HN users recommended this talk2 months2017–2026 score 2
Years with an HN recommendation, 2007–2026

Recommended as the clearest explanation of how Swift generics compile and how that differs from other languages.

Swift compiler engineers explain how Swift implements generics using dictionary-passing with reified type metadata. They compare it with Java-style uniform representation and C++ or Rust monomorphization.

“there's a very nice talk on how Swift's generics compile.” (HN, 2017)

2 recommendations · 2 citations · Talks · advanced

4 Hacker News comments

From the HN archive; up to 20 kept per video, favoring different commenters. Recommendations first.

@Veedrac Dec 2017 Recommends
on HN thread Type Erasure in Swift
If you're interested, there's a very nice talk on how Swift's generics compile. It's different to Rust in some key ways. [this video]
How Swift generics compile, differing from Rust
@favorited Oct 2022 Recommends
on HN thread Compiling Swift Generics [pdf]
Swift's generics have some unique properties at module boundaries to allow for a stable ABI while enabling library evolution. To get additional background, you might be interested in this[0] conference talk (the paper's author is one of the co-presenters). Also, this post[1] by a Rust and Swift compiler engineer talks about what Swift does differently than other languages, and the tradeoffs that are involved. [0] [this video] [1] [link]
Background on Swift generics, ABI stability and library evolution

Citations, criticism and jokes

@favorited Nov 2022 Cites it
on HN thread Swift Project in 2023
The Swift story around ABI stability and library evolution is pretty unique. Relatedly, its approach to generics doesn't fall into either of the 2 traditional paths (either box everything like Java and C#, or template instantiation like C++ or Rust). [link] [this video]
Swift's generics approach is neither boxing nor templates
@mananaysiempre Apr 2026 Cites it
on HN thread A tail-call interpreter in (nightly) Rust
Read more
> It doesn't make sense to me that an embedded VM/interpreter could ever outperform direct code. You're adding a layer of abstraction and indirection, so how is it possible that a more indirect solution can have better performance? It is funny, but (like I’ve already mentioned[1] a few months ago) for serialization(-adjacent) formats in particular the preferential position of bytecode interpreters has been rediscovered again and again. The earliest example I know about is Microsoft’s MIDL, which started off generating C code for NDR un/marshalling but very soon (ca. 1995) switched to bytecode programs (which Microsoft for some reason called “format strings”; these days there’s also typelib marshalling and WinRT metadata-driven marshalling, the latter completely undocumented, but both data-driven). Bellard’s nonfree ffasn1 also (seemingly) uses bytecode, unlike the main FOSS implementations of ASN.1. Protocol Buffers started off with codegen (burying Google user in de/serialization code) but UPB uses “table-driven”, i.e. bytecode, parsing[2]. The most interesting chapter in this long history is in my opinion Swift’s bytecode-based value witnesses[3,4]. Swift (uniquely) has support for ABI compatibility with polymorphic value types, so e.g. you can have a field in the middle of your struct whose size and alignment only become known at dynamic linking time. It does this in pretty much the way you expect[5]: each type has a vtable (“value witness”) full of compiler-generated meth
Swift bytecode-based value witnesses as example

Video list and Hacker News comment labels from HackerTube (prompted by @karpathy), released under ODC-By 1.0, built on the open-index/hacker-news archive. Hacker News data is provided by Y Combinator; comments remain the work of their authors. Video titles, channel names and thumbnails belong to their creators and are shown via YouTube. HackerTube Watch is an unofficial edition. Data export of 2026-10-31.

Keyboard shortcuts

/
Search
j k
Next / previous video
r
Surprise me
l
Like (video page)
w
Watch later (video page)
?
This help
Esc
Close