Changes between Version 26 and Version 27 of Commentary/Libraries


Ignore:
Timestamp:
Sep 15, 2010 4:02:03 PM (4 years ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Libraries

    v26 v27  
    33All GHC build trees contain a set of libraries, called the '''Boot Packages'''.  These are the libraries that GHC's source code imports.  Obviously you need the boot packages to build GHC at all. 
    44 
    5 The Boot Packages, along with the other subcomponents of the GHC build system, are in the file `packages` in a GHC tree. To get a list of them, do the following in a configured GHC build tree: 
     5The Boot Packages, along with the other subcomponents of the GHC build system, are listed in the file `$(TOP)/packages` in a GHC tree.  
     6 
     7All boot packages have a Darcs repo in http://darcs.haskell.org/package': 
     8 
     9 * Having all the repos in one place makes it easy and uniform for GHC developers to get all the packages. 
     10 
     11 * In a build tree, these packages each occupy a sub-directory of `$(TOP)/libraries`. 
     12 
     13 * For INDEPENDENT packages (see "Coupling to GHC", below), the Darcs repo in http://darcs.haskell.org/packages is a '''lagging repo'''. That means 
     14   * Don't push to it. 
     15   * Update it from the package's master repo at convenient intervals. 
     16   In this way GHC developers are not exposed to package upgrades, except when we want. 
    617 
    718To find out which packages are currently zero-boot packages, do the following in a GHC build: 
     
    1223(The `PACKAGES` variable is set in `$(TOP)/`[[GhcFile(ghc.mk)]].) 
    1324You can see exactly which versions of what packages GHC depends on by looking in `$(TOP)/`[[GhcFile(compiler/ghc.cabal.in)]]. 
     25 
     26= Building packages that GHC doesn't depend on = 
    1427 
    1528You can make the build system build extra packages, on which GHC doesn't strictly depend, by extending the `EXTRA_PACKAGES` variable. It's not very tidy; see tickets #3896 and #3882 for more information. 
     
    4760   * base 
    4861 
    49  * '''INDEPENDENT''': Independently maintained.  There are quite a few of these, such as `containers`, `binary`, `haskeline` and so on. 
     62 * '''INDEPENDENT''': Independently maintained.  There are quite a few of these, such as `containers`, `binary`, `haskeline` and so on.  Indeed most boot libraries are INDEPENDENT.   
    5063 
    51 Most boot libraries are INDEPENDENT.  INDEPENDENT libraries have a 
     64INDEPENDENT libraries have a 
    5265master repository somewhere separate from the GHC repositories.  Whenever we release GHC, we ensure that the INDEPENDENT boot libraries that come with GHC are precisely sync'd with a particular released version of that library. 
    5366