wiki:MoreDepth

Version 30 (modified by guest, 8 years ago) (diff)

--

Areas We'd Like To See Covered In More Depth

Possible presentation topics for Friday. If you'd like to see more on one of these, add your name to the line. Or add a new item'''

  • How the renamer works
  • How the type checker works --- Norman Ramsey (but prefer two below), Andres Löh, Jeremy Gibbons, Luke Maurer, Brandon Moore
  • How the simplifier works, and what transformations it does.
  • How Template Haskell is implemented -- Brandon Moore
  • Packages, Cabal, and GHC --- would like to see: Norman Ramsey, Geoff Washburn
  • Past or present efforts in formal verification of GHC components
  • Details of the GHC-as-a-library API, and how to use it. -- Norman Ramsey, Andy Gill, Geoff Washburn, Jeffery Zhang, Kathleen Fisher


Related: compiling multiple modules: --make and all that

  • More details about vectored returns
  • Details about System FC, GHC's new intermediate language -- Jeremy Gibbons
  • Reading a nightly snapshot build log
  • Understanding the ddump flags, and walkthrough of a Haskell example

Suggestions from the floor

  • It would be quite interesting to hear what parts of GHC are changing rapidly and what parts seem quite stable. Also, into which corners of the compiler do the righteous fear to tread? (The evil mangler?)
  • It is unclear how binding group analysis influences the use of 1 abstract syntax (HsSyn): how is the required ordering and grouping implemented, how does it affect error messages?
  • How does this Cabal thing work?
  • How to read a dailysnapshot build log.
  • Does ghc compile with VisualHaskell yet?
  • In the compiler pipeline, please explain a little more about the invariants as a program flows through the pipeline. For example, toward the back end, it would be useful to know at what point the following become known:
    • layout of heap objects
    • explicit heap pointer (allocation pointer)
    • explicit stack pointer
  • What optimizations happen in the simplifier? How do they work?
  • The GHC API and implementation of GHCi
  • A breakdown of the size of the various parts of the run-time system