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 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