# darcs access to nhc98

This page tells you how to get darcs access to the latest, most current, nhc98 sources.

Note that we only store non-regenerable files in version control, so if you don't already have a working Haskell compiler, you won't be able to build from C sources using our repository.

### Viewing the darcs repository on the web

If you don't want to download the sources, you can view the current contents of the repository on the web here.

### Remote read-only access

Read-only access is available to anyone - there's no need to ask us first. To get read-only access to our repository:

- Obviously, you need to have the darcs command installed.
- `darcs get --partial http://darcs.haskell.org/nhc98`
- If you want the complete history, omit the `--partial` flag, but be warned that the history is large, it will take a long time to download, and may have errors on case-insensitive file systems (e.g. Windows and MacOS X).
- The checked-out source tree will appear in a directory called `nhc98`. You can rename this directory to whatever you like, darcs won't mind.
- Change to that directory, and run the shell script `sh start`. This will prepare the repository for use, by making various scripts executable, downloading extra library packages, and so on.
- From then on, you can keep up with new changes in the central repo by using `darcs-all pull`. You can even do your own development in a detached fashion, using `darcs record` on your own local repository.

With read-only darcs access you can do anything except commit changes back to the central repository. To submit patches to us, `darcs record` them locally, then `darcs send`.

### Prerequisites to build nhc98 from darcs

You will need the shell bash together with a standard unix command-line toolset, a C compiler such as gcc, and either an existing installation of nhc98, or ghc with the filepath package.

### Using the checked-out tree

The first thing to do after checking out a fresh tree is `sh start`, followed by `./configure`, and setting whatever options you wish to use. It is always safe to re-run the `./configure` script at any time - it will never leave your configuration in an inconsistent state. The machine/OS combination is always detected first so you can't re-use the wrong machine configuration by mistake, and although previous options for a particular machine are cached, they are always reported, and can be always overridden on the command line.

Then, do a `make` with whatever targets you are interested in: `make help` will give you a list of the common ones. For instance, `make basic` gives you the standard compiler, and `make all` gives you profiling and tracing variants in addition.

### Tracking changes in the central repository

The log messages of all accepted darcs patches are sent to the mailing list `cvs-nhc98@haskell.org`. If you wish to see who is making changes, why, and and what they say about them, please do join this list - see `http://haskell.org/mailman/listinfo` for further details.

### Core developers - write-access to the repository

Core developers of Haskell have write-access to the central darcs repository. All you need is an account on the machine `darcs.haskell.org`.

- You need to have ssh (secure shell) installed.
- The first time you commit a patch back to the repo, you will need to specify where it is located:

      darcs push darcs.haskell.org:/home/darcs/nhc98

- Thereafter, just use `darcs push` to commit patches.

All the other instructions are the same.

### Gaining write-access

To obtain write-access to darcs.haskell.org, you need to ask the haskell.org maintainers - Simon Marlow <simonmar@haskell.org> or Isaac Jones <ijones@galois.com> - for an account.

The latest updates to these pages are available on the WWW from `http://www.haskell.org/nhc98/`

This page last modified: 9 Jul 2010
York Functional Programming Group