Changes between Version 70 and Version 71 of Building/GettingTheSources


Ignore:
Timestamp:
Aug 31, 2011 5:13:00 PM (4 years ago)
Author:
dterei
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Building/GettingTheSources

    v70 v71  
    88== Source distributions ==
    99
    10 A source distribution is a file like {{{ghc-6.12.2-src.tar.bz2}}}, which contains a complete snapshot of the source tree for a particular version of GHC. Source distributions for all versions of GHC are available from the [http://www.haskell.org/ghc/download.html download page].
     10A source distribution is a file like {{{ghc-7.0.4-src.tar.bz2}}}, which contains a complete snapshot of the source tree for a particular version of GHC. Source distributions for all versions of GHC are available from the [http://www.haskell.org/ghc/download.html download page].
    1111
    12 In addition to fixed releases of GHC, source distributions are also made each night from the current source repository, for both the HEAD and STABLE branches.  To download these snapshots, head over to the [http://www.haskell.org/ghc/download.html download page].
     12In addition to fixed releases of GHC, source distributions are also made each night from the current source repository, for both the HEAD and STABLE branches. To download these snapshots, head over to the [http://www.haskell.org/ghc/download.html download page].
    1313
    14 Source distributions are easier to build, because we also include the output from running certain external tools like [http://haskell.org/happy Happy], so you don't need to install these tools.  See [wiki:Building/Preparation] for details.
     14Source distributions are easier to build, because we also include the output from running certain external tools like [http://haskell.org/happy Happy], so you don't need to install these tools. See [wiki:Building/Preparation] for details.
    1515
    1616== Getting a GHC repository using git ==
     
    2323}}}
    2424
    25 A source tree consists of more than one repository: at the top level there is the main GHC repository, and certain subdirectories contain separate git repositories (the full list of git repositories relating to GHC is at [wiki:Repositories]). To get a complete repository tree using git:
     25A source tree consists of more than one repository: at the top level there is the main GHC repository, and certain subdirectories contain [wiki:Repositories separate git repositories]. To get a complete repository tree using git:
    2626
    2727{{{
     
    4444}}}
    4545
    46 where `~/ghc` is the repository you want to branch and `~/ghc-branch` is where you want to put the branch.  Then use `sync-all` as before to branch the rest of the repositories. You can then use `sync-all -r <path>` to push and pull patches between your two local repository trees.
     46where `~/ghc` is the repository you want to branch and `~/ghc-branch` is where you want to put the branch. Then use `sync-all` as before to branch the rest of the repositories. You can then use `sync-all -r <path>` to push and pull patches between your two local repository trees.
    4747
    4848== Getting a branch ==
    4949
    50 The above instructions will get the HEAD - the main trunk of GHC development.  There are also branches, from which stable releases are made. The active branches are listed on [wiki:Repositories].
     50The above instructions will get the HEAD, the main trunk of GHC development. There are also branches, from which stable releases are made. The active branches are listed on [wiki:Repositories].
    5151
    5252To get a branch, you need to get from a repo that contains the branch; in particular, local clones of the central repo will normally not include the branches that are in the central repo.
     
    5959}}}
    6060
    61 == Getting a GHC repository from !GitHub.com ==
     61== Getting a GHC repository from !GitHub ==
    6262
    63 To get GHC repository from the GitHub.com we recommend to just get GHC source code itself from GitHub and combine this with packages from http://darcs.haskell.org. This is easy since sync-all script supports it well.
     63To get GHC repository from [http://www.github.com GitHub] we recommend to just get GHC source code itself from !GitHub and combine this with packages from http://darcs.haskell.org. This is easy since sync-all script supports it well.
    6464{{{
    6565  $ git clone <your preferred github.com GHC fork URL> ghc
     
    6868}}}
    6969
     70The official mirror for GHC on github is located at [https://github.com/ghc/ghc].
     71
    7072== Pulling new patches ==
    7173
    72 The [wiki:Building/SyncAll sync-all] script makes it easy to pull new patches.  For example, `sync-all pull` will pull all new patches from the original repository into the repository tree in the current directory.
     74The [wiki:Building/SyncAll sync-all] script makes it easy to pull new patches. For example, `sync-all pull` will pull all new patches from the original repository into the repository tree in the current directory.
    7375
    7476== Tracking the full repository state ==
    7577
    76 The full state of a GHC repository includes the current state of the repositories for all of the GHC boot libraries that are used to to build GHC (see [wiki:Repositories] for a list of the boot libraries). The repositories for these libraries are fetched and updated by the `sync-all` script. To recored the full repository state (including boot libraries), git submodules could be used, but they are not currently in favor (see [wiki:DarcsConversion#Theperspectiveonsubmodules The perspective on submodules] for some reasons why).
     78The full state of a GHC repository includes the current state of the repositories for all of the GHC boot libraries that are used to to build GHC ([wiki:Repositories list of boot libraries]). The repositories for these libraries are fetched and updated by the `sync-all` script. To recored the full repository state (including boot libraries), git submodules could be used, but they are not currently in favor (see [wiki:DarcsConversion#Theperspectiveonsubmodules GHC Team perspective on submodules] for some reasons why).
    7779
    7880As an alternative to git submodules, the `fingerprint.py` script in `utils/fingerprint/` can create a "fingerprint" to uniquely identify a GHC repository state by recording the current commits of the GHC and boot library repositories. This fingerprint can be used later to restore the state of all repositories to the state captured by the fingerprint.
    79 
    80 A fingerprint is created by parsing the output of the `sync-all` command: `./sync-all log HEAD^.. --pretty=oneline`. This command will list each repository along with its commit hash. The fingerprint can be saved for later use. Alternatively, the fingerprint can be created from a [wiki:Builder] log that includes the output of the `sync-all` command above.
    8181
    8282To create a new fingerprint, run the `create` command in the top level ghc repo. The fingerprint can also be created from a [wiki:Builder] log that contains the appropriate output from the `sync-all` command by passing the log file to the create command with the `-l` flag.