ANNOUNCE: nhc98 version 1.02
Wed, 14 Feb 2001 13:27:48 +0000

We are pleased to announce the new release 1.02 of nhc98, a compiler
for Haskell'98, written in Haskell'98.

It is available as a source package (which can be built via ghc, hbc,
an existing nhc98 installation, or simply with a C compiler if you
don't already have a Haskell compiler installed).

Binary packages are also currently available for ix86-Linux and
sparc-solaris2.  Binary packages for other architectures can be
added to the list if users contribute them.

What's new
This is an interim release, mainly fixing bugs in nhc98-1.00.
The tracing and debugging tool, Hat, is about to undergo some
significant changes, so release 1.02 is a stable snapshot before we
start to break too many things!

Amongst the many bugfixes, notable ones are as follows:

    * Fixed a space-leak in the compiler.  Compilation now
      requires approximately half the previous maximum heap,
      and as a result, compile times are 5-10% faster.

    * The raw speed of input and output for compiled programs is
      now much faster, although you will probably only notice a
      difference if your program is severely I/O-bound.

    * Local infix declarations now work correctly.

    * `newtype T a = T a' now works correctly.

    * @-pattern-bindings are fixed.  This means that Happy-generated
      parsers now compile correctly.

    * We now accept {-# pragmas #-} in any source position, and
      understand LINE pragmas.

Recent bugfixes and new features in Hat include:

    * When a traced program is interrupted or terminates with an error,
      you get a virtual stack trace of the computation "for free",
      without having to start up a browser.

    * Foreign imports (via the new common primitive FFI) with an
      I/O result type are now also traced (previously only pure
      foreign functions were traced).

    * Interface and object files for tracing now have distinct
      file suffixes: .T.hi and .T.o.  This improves matters enormously
      when switching between normal and tracing versions of a program.
      It also fixes some dependency bugs when building the tracing
      version of the compiler.  Both the compiler and hmake have
      knowledge of the new suffixes.

    * Tracing versions of the following libraries have been added:
         IO, Array, FFI, IOExtras.
      (Still missing: Directory, System, Time, Locale, CPUTime, Random.)