Version 9 (modified by simonpj, 13 years ago) (diff)


0. Overview (SPJ)

1. Building (SM)

  • Getting the code (do a live build...)
  • Setting up the build
  • Building
  • 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 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

4. The Runtime System