Changes between Version 18 and Version 19 of Commentary/Libraries


Ignore:
Timestamp:
Sep 30, 2009 10:38:41 AM (5 years ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Libraries

    v18 v19  
    77You can see exactly which versions of what packages GHC depends on by looking in `$(TOP)/compiler/ghc.cabal.in`. 
    88 
    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. 
    1014 
     15== Coupling to GHC == 
    1116 
    12 == Classifying the boot packages == 
    13  
    14 A second important classification of the boot packages is as follows: 
     17An important classification of the boot packages is as follows: 
    1518 
    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. 
    4245 
    43 == Boot packages dependencies == 
     46== Installation == 
     47 
     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.   
     49 
     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. 
     51 
     52Currently 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 = 
    4455 
    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.