# nhc13 release history

### Unreleased 0.9.5 (99xxxx) features (now in nhc98)

- Major addition: Existential types in data declarations.
- Addition: A fresh version of the time profiler is ready. It is now gives accurate results, and the overhead is down to 10% of runtime.
- Addition: New options `-M` and `-Md` to hmake.
- Bugfix: In the Binary library there was a very slight incompatibility between the types described in the ISMM'98 paper and the implementation. The implementation is now fixed to match the paper.
- Bugfix: At last, the distribution tarfiles down extract into an nhc13-x.x directory, rather than the current directory.

### Release 0.9.4 (981105) features

- Addition: Various aspects of the trace browser have been updated.
- Bugfix: Haskell code which called C code which in turn called Haskell code crashed with 'Unknown instruction 199'. Fixed.
- Bugfix: various small changes are required to enable nhc13 to compile for mips-Ultrix-4.5.
- Bugfix: hmake did not collect import dependencies correctly from literate files. Fixed.
- Bugfix: not just SunOS, but also FreeBSD, has a too-small limit on the number of open files a process can hold. This can cause problems when compiling nhc13comp with hmake. The work-around from 0.9.3 is now applied universally, regardless of operating system.
- Bugfix: At last, the nhc13 version of GreenCard has parse error messages! Previously, it simply failed silently, with truncated output files.
- Bugfix: installed version of hmake referred to temp include directory instead of installed directory.

### Release 0.9.3 (980706) features

- Bugfix: Compiling for tracing under SunOS no longer requires an explicit `-lsocket`.
- Bugfix: SunOS has a very small limit on the number of open files a process can hold. This caused problems when compiling nhc13comp with hmake. It now has a work-around.
- Bugfix: there was a GC bug in the Binary library, rarely causing a segmentation fault.
- Bugfix: the Prelude definition of product was wrong.
- Bugfix: GreenCard now permits limited use of the Word type.

### Release 0.9.2 (980624) features

- Major addition: the tracing compiler and trace browser are now available!
- Major addition: source-level time profiling is now available.
- Addition: a new compile-time option: -d objdir
- Addition: the nhc13make and hbcmake tools have been replaced by hmake. (New features: it generates build scripts using any of hbc, nhc13, or ghc; it knows about cpp directives; it knows about separate objdirs.)
- Bugfix: object files are now built in separate directories from the source tree. This means you can build simultaneously on different architectures sharing the same sources.
- Bugfix: the binary library is no longer tied into the Prelude.
- Addition: class Binary has a new operation sizeOf.

### Beta release 980501 features

- Additions: Binary library functions `endBin`, `skipBits`, `clearBits`, `copyBytes`, etc. + documentation updates.
- Bugfix: fixed (>) and (>=) for multiple precision integers

### Beta release 980327 features

- Addition: a library for binary arrays, BinArray, has been revised and added to the distribution.
- Addition: the efficient bulk-transfer operation `copyBin` has now been added to the Binary library.
- Bugfix: GreenCard now treats functions of type `()->IO a` correctly.
- Bugfix: there are some additional options to the config script.

### Beta release 980320 features

- Mainly bugfixes in the new configuration/installation script, particularly installation of nhc13make, and better handling of re-compilation in the presence of errors.
- Some minor library bugfixes: Array is now an instance of Functor (i.e. you can use `map` on an array rather than the old `amap`); in GreenCard, the null string is now converted to an empty string; the limit on ForeignObj's is now extended to 1024.

### Beta release 980304 features

- A complete overhaul of the installation scripts, particularly for the C source distribution: there is now much greater automation of configuration, build and installation.
- The treatment of big- vs. little-endian architectures is now fully automatic.

### Beta release 980212 features

- The binary libraries have been completely re-implemented (again). The new version unifies memory compression and binary I/O into a single ``Binary`' class. The old interfaces are still available, but there are many benefits to the new design.
- Bugfixes in the nhc13 version of the greencard tool: it now understands ``%const`' directives; and user DISs with multiple parameters (e.g. ``<fr/to> a b c`') are now handled correctly.
- Bugfixes in the installation scripts for the C source distribution (which is now beta quality): the makefile now correctly builds the runtime and prelude before the compiler which must be linked with them; and the freshly-built compiler now uses the ANSI-C backend by default.
- A couple of other minor compiler bugfixes have been incorporated.

### Beta release 971219 features

- I have just added an (alpha-quality) distribution package which requires only an ANSI-C compiler (for instance, gcc) to build nhc13. This should make nhc13 an extremely portable Haskell compiler. It was made possible by a new compiler back-end (beta-quality) which generates ANSI-C. The intention is to allow easy cross-compilation (e.g. for embedded systems). We will be testing the cross-compiler in early 1998.

### Alpha release 971106 features

- When you use the nhc13 or nhc13make commands, GreenCard will be called automatically if the file you are compiling has the extension `.gc`.
- The `Compress` and `BinIO` libraries have been completely re-implemented using GreenCard. As well as being faster all round, it is now possible to interleave random-access reading and writing on the same file.

The latest updates to these pages are available on the WWW from `http://www.haskell.org/nhc98/` See also `http://www.cs.york.ac.uk/fp/nhc13/`

26th January 1999
York Functional Programming Group