# Release notes for version 5.00 (April 2001)

## User-visible compiler changes

- GHCi, the new interactive environment on top of GHC, has been added ().

- New `––make` flag added ().

- The native code generator now supports Sparc in addition to x86.

- We now make it clear which options can be placed in an OPTIONS pragma. See .

- `-fglasgow-exts` no longer implies `-package lang`.

- `-noC` is no more.

- `-hi` and `-nohi` are no more.

- The concept of “packages” has been generalised and extended. Packages may be installed or removed from an existing GHC installation using the new `ghc-pkg` tool. See .

- Initial unicode support: the `Char` type is now 31 bits. We don't yet have support for unicode I/O.

- `-v` now takes an optional numeric argument indicating the level of verbosity (). `-dshow-passes` has been removed.

- Parallel list comprehensions added. See .

- Functional dependencies are now fully implemented.

- Profiling: please use `{-# SCC ".." #-}` rather than `_scc_ "..."`. The latter will be phased out in due course.

- A new experimental optimisation, SpecConstr, is turned on with `-O2`.

- Please report bugs using the SourceForge bug tracker instead of glasgow-haskell-bugs@haskell.org if possible.

- Documentation changes: there's now a useful Flag Reference section, see .

- Many, many, bugfixes.

## New experimental features

- A “front panel” for GHC-compiled programs displays real-time graphs of memory behaviour in a GTK+ window. You need to recompile the RTS with front panel support to use this.

## FFI changes

- `hsc2hs` added ().

- FFI libraries have been updated to the latest proposal from the FFI task force. Too many changes to list here, see the docs: .

## User-visible library changes

- `putMVar` now blocks if the `MVar` is already full. The `PutFullMVar` exception no longer exists. A non-blocking version of `putMVar`, `tryPutMVar`, has been added ().

- The `Int` and `Integer` types now have instances of `Bits` ().

- Package `hssource` has been added. It contains a Haskell 98 abstract syntax, parser, lexer and pretty printer. No documentation yet.

- The methods `fromInt` and `toInt`, which used to be in class `Num` but exported from module `Int`, are no longer in class `Num`. They're still available from module `Int`, however.

  In most cases, there should be no benefit from using `fromInt` instead of `fromIntegral`, which is specialised for all integral types.

- New modules: DiffArray (), StorableArray (), MonadList, MonadCont (no documentation yet).

## Build system changes

- The `WithGhcHc` setting in `build.mk` has been replaced by the `––with-ghc=ghc` option to `configure`. The new option must be used if you intend to use anything except “`ghc`” to bootstrap GHC, in order that the build system can figure out what version of GHC you're using.

- Source distributions are now made by doing `make distclean` in a build tree, instead of requiring a linked build tree.

## Internal changes

- Many internal compiler changes: too many to list here.

- The old perl driver has been removed and replaced by a driver in the compiler proper.

- We now use GMP 3 instead of GMP 2 for arbitrary-precision integer support.

- Several libraries rewritten to use the FFI.