Changes between Version 18 and Version 19 of Commentary/Libraries
- Sep 30, 2009 10:38:41 AM (7 years ago)
v18 v19 7 7 You can see exactly which versions of what packages GHC depends on by looking in `$(TOP)/compiler/ghc.cabal.in`. 8 8 9 Every installation of GHC includes the Boot Packages. 9 Boot packages can be classified in three different ways: 10 * Independent/Coupled/Specific 11 * Zero-boot/not zero-boot 12 * Installed/not installed 13 These distinctions are described in the following sub-sections. 10 14 15 11 16 12 == Classifying the boot packages == 13 14 A second important classification of the boot packages is as follows: 17 An important classification of the boot packages is as follows: 15 18 16 19 * '''INDEPENDENT''': Independently maintained (e.g. time, haskeline) … … 41 44 * `extensible-exceptions`: this is a shim that provides an API to older versions of GHC that is compatible with what the current `base` package now exports. So, unusually, `extensible-exceptions` is a zero-boot package, but not a boot package. 42 45 43 == Boot packages dependencies == 46 == Installation == 47 48 When we build a distribution of GHC, it includes at least some libraries, otherwise it would be utterly useless. Since GHC is part of the Haskell Platform, any library that is installed with GHC is necessarily part of the Haskell Platform, so we have to be a bit careful what we include. 49 50 Alas, since the `ghc` package (implementing the GHC API) is certainly an installed package, all the packages on which it depends must also be installed, and hence willy-nilly become part of the Haskell Platform. In practice that means that almost all the Boot Packages are installed. In some cases that is unfortunate. For example, we currently have a special version of the `binary` library, which we don't really expect Haskell users to use; in this case, we call it `ghc-binary`, and informally discourage its use. 51 52 Currently the only Boot Package that is not installed is `haskelline`; it needed to build `ghci`, but not to build the `ghc` package. 53 54 = Boot packages dependencies = 44 55 45 56 * 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.