Changes between Version 18 and Version 19 of Commentary/Libraries

Sep 30, 2009 10:38:41 AM (8 years ago)



  • Commentary/Libraries

    v18 v19  
    77You can see exactly which versions of what packages GHC depends on by looking in `$(TOP)/compiler/`.
    9 Every installation of GHC includes the Boot Packages.
     9Boot packages can be classified in three different ways:
     10  * Independent/Coupled/Specific
     11  * Zero-boot/not zero-boot
     12  * Installed/not installed
     13These distinctions are described in the following sub-sections.
     15== Coupling to GHC ==
    12 == Classifying the boot packages ==
    14 A second important classification of the boot packages is as follows:
     17An important classification of the boot packages is as follows:
    1619 * '''INDEPENDENT''': Independently maintained (e.g. time, haskeline)
    4144 * `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.
    43 == Boot packages dependencies ==
     46== Installation ==
     48When 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. 
     50Alas, 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.
     52Currently the only Boot Package that is not installed is `haskelline`; it needed to build `ghci`, but not to build the `ghc` package.
     54= Boot packages dependencies =
    4556 * 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.