# The nhc98 compiler

nhc98 is a small, easy to install, standards-compliant compiler for Haskell 98, the lazy functional programming language. It is very portable, and aims to produce small executables that run in small amounts of memory. It produces medium-fast code, and compilation is itself quite fast. It also comes with extensive tool support for automatic compilation, foreign language interfacing, heap and time profiling, tracing, and debugging. (Some of its advanced kinds of heap profiles are not found in any other Haskell compiler.)

nhc98 is available for all Unix-like platforms (including MacOS-X, Cygwin/Windows, Linux, Solaris, *BSD, AIX, HP-UX, Ultrix, IRIX, etc.) Although it is itself written in standard Haskell 98, it can be quickly and easily bootstrapped from C sources, so you do not need another Haskell compiler to get started.

nhc98 is currently restricted to 32-bit machine architectures, or 64-bit machines that have a 32-bit compatibility mode.

about

  Why use nhc98?
  Compliance with Haskell 98.
  Language extensions.
  Published papers.
  Copyright and licence information.

download/build/install

  Version 1.20 released 22nd November 2007.
  Download nhc98.
  Build and/or install instructions.
  Configuration options.
  Recent changes.

user guides

  Compile-time options.
  Runtime-time options.
  Error messages.
  Libraries included with nhc98.
  Foreign function interface.
  Implementation limits.

tools

  hi - interactive development environment.
  hmake - batch compilation tool.
  greencard - C-interface tool.
  Heap profiling.
  Time profiling.
  Hat, tracing and debugging.

development

  Known bugs.
  Wish list.
  Implementation notes for developers.
  Would you like to contribute?
  Public darcs repository.

community

  Mailing lists for all nhc98 users.
  More general Haskell mailing lists.
  haskell.org

If you have any problems, please send a message to the bug reports mailing list at nhc-bugs@haskell.org.

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

This page last modified: 23rd November 2007
York Functional Programming Group