0. Overview (SPJ)
1. Building (SM)
- Getting the code (do a live build...)
- Setting up the build
- tweaking & recompiling, etc.
- how libraries/packages are built
- ghc-inplace vs. installed ghc, how does it run inplace (find its bits)
- how to "use" the build system and common tasks, pointer to docs
- using/extending the testsuite
2. The Compiler
- SPJ inside-out view: start with a single module (HscMain downwards)
- SPJ the main datatypes (RdrName, Name, Id, Var, TyVar, Type, Core, HsSyn, Cmm).
- SPJ renamer, typechecker, desugarer, core->core
- SPJ ModIface, ModDetails, ModGuts
- SPJ Core->CorePrep->Stg->Cmm
- SM PrimOPs: primops.txt.pp - what is generated from it?
- SM GHC API
- SM HscMain upwards: ModSummary, Finder, upsweep, downsweep,
3. Back end (SM)
- SM execution model STG + eval/apply
- SM Cmm->NCG
- SM Cmm->BCO (simple compilation scheme, no primops: GHC.PrimopWrappers)
- SM Cmm->C
Download in other formats: