... | ... | @@ -8,9 +8,9 @@ The boot packages, along with the other subcomponents of the GHC build system, a |
|
|
|
|
|
- At the root of the hierarchy we have **`ghc-prim`**. As the name implies, this package contains the most primitive types and functions. It only contains a handful of modules, including `GHC.Prim` (which contains `Int#`, `+#`, etc) and `GHC.Bool`, containing the `Bool` datatype.
|
|
|
|
|
|
- Above `ghc-prim` is the **`integer`** package, which provides a definition of the `Integer` type on top of the C `gmp` library. Which functionality is provided in `ghc-prim` is mostly driven by what functionality the `integer` package needs. Unlike all the other libraries, the `integer` package does not live in `libraries/integer`, but `libraries/integer-gmp`. This allows alternate implementations to be used, by defining `INTEGER_LIBRARY=integer-foo` in `mk/build.mk`.
|
|
|
- Above `ghc-prim` is the **`integer-impl`** package, where `impl` is one of `gmp` and `simple`, which provides a definition of the `Integer` type (on top of the C `gmp` library, or in plain Haskell, respectively). Which functionality is provided in `ghc-prim` is mostly driven by what functionality the `integer-impl` packages need. By default `integer-gmp` is used; to use `integer-simple` define `INTEGER_LIBRARY=integer-simple` in `mk/build.mk`.
|
|
|
|
|
|
- Next is the **`base`** package. This contains a large number of modules, many of which are in one big cyclic import knot, mostly due to the `Exception` type. This is something that we hope to improve upon, so that base can be split up.
|
|
|
- Next is the **`base`** package. This contains a large number of modules, many of which are in one big cyclic import knot, mostly due to the `Exception` type.
|
|
|
|
|
|
- On top of base are a number of other, more specialised packages, whose purpose is generally clear from their name. If not, you can get more detail from the descriptions in their Cabal files. Currently these packages are are:
|
|
|
|
... | ... | @@ -36,4 +36,7 @@ The boot packages, along with the other subcomponents of the GHC build system, a |
|
|
- `terminfo`
|
|
|
- `unix`
|
|
|
- `utf8-string`
|
|
|
- `Win32` |
|
|
\ No newline at end of file |
|
|
- `Win32`
|
|
|
|
|
|
|
|
|
The `haskell98`, `old-time` and `random` packages are mostly only needed for Haskell 98 support, although `dph` currently uses `random` too. |