Changes between Version 67 and Version 68 of Commentary/Libraries


Ignore:
Timestamp:
May 20, 2016 5:32:39 PM (3 years ago)
Author:
bgamari
Comment:

Explain ghc-boot/ghc-boot-th situation

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Libraries

    v67 v68  
    141141}}}
    142142
     143= GHC-internal libraries (`ghc-boot-*`) =
     144
     145GHC ships with two few libraries which exist to share code between components of the compiler: `ghc-boot` and `ghc-boot-th`.
     146
     147Previously there was one `ghc-boot` library to allow us to share types and functions between the `ghc` library, the `ghci` library, and the `template-haskell` library. This situation was suboptimal (see #12052) since it is important that `template-haskell` has a minimal set of dependencies (as it is depended upon by a large set of user code) yet `ghc-boot` has dependencies on `binary` and `bytestring`.
     148
     149To reduce the transitive dependency set of `template-haskell` it was decided that `ghc-boot` would be split into two separate libraries. Those definitions required by `template-haskell` live in `ghc-boot-th` and everything else lives in `ghc-boot`. Modules provided by `ghc-boot-th` are re-exported by `ghc-boot.
     150
     151
    143152= Repositories =
    144153