takenobu-hs/haskell-ghc-illustrated

haskell ghc-illustrated

262

37 commits

updated Feb 13, 2021

See the code

README

GHC(STG,Cmm,asm) illustrated

This is an illustrated document about the GHC(Glasgow Haskell Compiler).

Here is haskell_ghc_illustrated.pdf.

Contents

  • Executable binary

  • Compile steps

  • Runtime System

  • Development languages


  • Machine layer/models

  • STG-machine

  • Heap object in STG-machine

  • STG-machine evaluation

  • Pointer tagging

  • Thunk and update

  • Allocate and free heap objects

  • STG - C land interface


  • Thread

  • Thread context switch

  • Creating main and sub threads

  • Thread migration

  • Heap and Threads

  • Threads and GC

  • Bound thread


  • Spark


  • Mvar

  • Software transactional memory


  • FFI

  • IO and FFI

  • IO manager


  • Bootstrap


  • Appendix

    • Boxity : boxed and unboxed
    • Levity : lifted and unlifted
    • Boxity and levity
  • References

ghc
haskell

Contributors

takenobu-hs

36 commits

ggreif

1 commits

takenobu-hs/haskell-ghc-illustrated

haskell ghc-illustrated

262

37 commits

updated Feb 13, 2021

See the code

README

GHC(STG,Cmm,asm) illustrated

This is an illustrated document about the GHC(Glasgow Haskell Compiler).

Here is haskell_ghc_illustrated.pdf.

Contents

  • Executable binary

  • Compile steps

  • Runtime System

  • Development languages


  • Machine layer/models

  • STG-machine

  • Heap object in STG-machine

  • STG-machine evaluation

  • Pointer tagging

  • Thunk and update

  • Allocate and free heap objects

  • STG - C land interface


  • Thread

  • Thread context switch

  • Creating main and sub threads

  • Thread migration

  • Heap and Threads

  • Threads and GC

  • Bound thread


  • Spark


  • Mvar

  • Software transactional memory


  • FFI

  • IO and FFI

  • IO manager


  • Bootstrap


  • Appendix

    • Boxity : boxed and unboxed
    • Levity : lifted and unlifted
    • Boxity and levity
  • References

ghc
haskell

Contributors

takenobu-hs

36 commits

ggreif

1 commits