nhc98

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.22 released 9th July 2010.
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 [email protected].


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

This page last modified: 9th July 2010
York Functional Programming Group