CVS access to nhc98

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

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

Remote Read-only CVS Access

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

  • You need to have ssh (secure shell) installed, and it must support SSH protocol version 1.5. (Protocol version 2.0 and above will not work with our server.)
  • Set your CVS_RSH environment variable to ssh.
  • The first time you access the repository, you'll need to do the following:
          $ cvs -d checkout nhc
    The checked-out source tree for nhc98 will appear in a directory called nhc. You can rename this directory to whatever you like, CVS won't mind.
  • From then on, you should no longer need the -d option, and commands like
          $ cvs diff
          $ cvs update
    should work, provided your working directory is somewhere inside the checked out tree. In normal use, cvs update is the command to merge the latest changes from the central repository into your local tree. cvs diff gives you the differences between your version and the central version.
  • If you change your current directory into a sub-directory of the CVS tree, cvs commands will normally operate only on that subtree, not on the full tree. This is very handy if you are only interested in a small part of the source.

With read-only CVS access you can do anything except commit changes to the repository. You can make changes to your local tree, and still use CVS's update facility to keep your tree otherwise up-to-date, and you can generate patches using cvs diff in order to send to us for inclusion.

To set up default flags for some of the CVS commands, you can create a .cvsrc file. For instance, the -P flag to 'update' says prune empty directories, which is normally what you want, and the -d flag ensures that you collect new directories that have been added. Here is an example .cvsrc file:

        checkout -P
        release -d
        update -d -P
        diff -c

Using the checked-out CVS tree

The first thing to do after checking out a fresh tree is ./configure, 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 CVS repository

The log messages of all CVS commit actions are sent to the mailing list If you wish to see who is making changes, why, and and what they say about them, please do join this list - see for further details.

Core developers - write-access to CVS

Core developers of nhc98 have write-access to the CVS repository. As a reminder, they should use a slightly different address for an initial checkout of the tree:

      $ cvs -d checkout nhc
All the other instruction are the same, except that developers also have permission to commit changes to the repository.

The latest updates to these pages are available on the WWW from

This page last modified: 2001.05.01
York Functional Programming Group