This is a book about the implementation of generic programming--also known as parametric polymorphism--in the Swift compiler. The first four chapters also give an overview of the Swift compiler architecture in general.
A periodically-updated PDF is available here:
It's written in TeX, so to typeset the PDF yourself, you need a TeX distribution:
Running make in docs/Generics/ will run pdflatex and bibtex in the right order to generate the final document with bibliography, index and cross-references:
cd docs/Generics/
make
A more modern alternative is to use latexmk, which runs pdflatex and bibtex until fixed point:
cd docs/Generics/
latexmk -pdf generics.tex
You can also just do this:
cd docs/Generics/
pdflatex generics
bibtex generics
pdflatex generics
pdflatex generics
The book makes use of internal hyperlinks so it is best to use PDF reader with support for PDF bookmarks and back/forward history:
- Preview.app on macOS fits the bill; you can add Back/Forward buttons to the toolbar with View > Customize Toolbar.
- Skim.app is a BSD-licensed open source PDF reader for macOS.
The font size and link targets are probably too small for a smartphone display, so I recommend using something bigger.
This is a work in progress.
The following chapters need some editing:
- Part II:
- Substitution Maps
- Part IV:
- Completion
The following chapters are not yet written:
- Part III:
- Opaque Return Types
- Existential Types
- Part IV:
- The Property Map
- Rule Minimization