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