# 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