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
- Start in the middle compiling a single module
- 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: