NEWS for Mercury 14.01.1
------------------------

This is a bug-fix release.

* The function string.string/1 and related functions now handle version
  arrays properly.
* Fix resource leaks in dir fold predicates.
* The mfilterjavac program is now generated with the correct file extension
  on Windows.
* A problem that caused compilation of the Boehm GC to fail on 64-bit
  openSUSE 13.1 systems has been fixed.  (Github issue #14)
* The documentation now builds correctly on Cygwin systems.
* The script configure_mingw_cross now supports 64-bit Windows targets.
* We have added workarounds for problems with (arguably broken)
  system headers on MinGW and MinGW64 systems.
* The MinGW port now builds in the absence of POSIX threads library.
* Low-level C parallel grades now work on Windows instead of crashing
  at startup.  (Bug #338)
* We now use thread-safe alternatives to strerror().  (Bug #340)
* We have added the configure option --enable-gc-mmap.
* We configure Boehm GC to use mmap in threaded grades on Linux to avoid
  conflicts with glibc malloc leading to memory corruption.
* A problem that caused string.format/[23] to sometimes return incorrect
  results when formatting floats with the 'g' conversion specifier has
  been fixed.  This bug only affected the non-C backends.  (Bug #342)
* string.format now handles special float values (i.e. nan, inf,  and -inf)
  correctly with the non-C backends.
* A bug that caused io.write_float/[34] to append ".0" to float special values
  has been fixed.  This bug affected the C and C# backends.
* In the C# and Java grades, the predicate string.from_char_list now
  implements the documented behaviour for input lists containing null
  characters (i.e. it throws an exception).
  Likewise, for string.from_reverse_char_list in the C# grade.
* We have fixed a problem that caused `mmc --make' to attempt to install
  libraries in non-existent grades.

Changes to the Mercury compiler:

* The compiler now supports stripping of executables in a separate
  post-link step.  The new options, --strip-executable-command,
  --strip-executable-shared-flags and --strip-executable-static-flags
  are used to control this.  
  (This is now the default on Mac OS X systems.)


NEWS for Mercury 14.01
----------------------

Changes to the Mercury language:

* Repeated type variables may now occur in the heads of type class instances.
  For example, instance declarations like the following are now allowed:

      :- instance foo(list(T), map(T, T)).

Changes to the Mercury standard library:

* We have added the function cord.condense/1.

* The following functions in the standard library's cord module now use
  constant stack space: foldl/3, foldl_pred/4.

* We have added the following predicates to the array and version_array
  modules: is_empty/1, all_true/2 and all_false/2.

* We have added the following predicates and functions to the map module:
  det_min_key/1, det_max_key/1, foldl2_values/6 and foldl3_values/8.

* We have added the following predicates to the list module: foldr2/6,
  foldr3/8, det_take/3 and map_foldr/5.

* We have added the following predicates to the bag module: foldl/4 and
  foldl2/6.

* We have added the following predicates to the assoc_list module:
  foldl2_values/6 and foldl3_values/8.

* We have added the following predicates and functions to the pqueue module:
  is_empty/1, peek/3, peek_key/2, peek_value/2, det_peek/3, merge/3,
  det_peek_key/1 and det_peek_value/1.

* We have added the predicate bimap.equal/2.

* We have added the following predicates to the int module: fold_up3/9 and
  fold_down3/9.

Changes to the Mercury compiler:

* On Mac OS X systems the compiler is now configured use the version of the
  host system as the default value for the deployment target.

  A new configuration option, `--with-macosx-deployment-target', allows
  an alternative value to be selected at configuration time.

Portability improvements:

* We have made the implementation compatible with GCC 4.8 and Visual Studio
  2013.

* We have made the implementation compatible with OS X 10.9.

Changes to the extras distribution:

* We've added a library that provides support for accessing the function
  trail from Mercury code.


For news about earlier versions, see the HISTORY file.
