[m-dev.] for review: Announcing Mercury 0.8

Fergus Henderson fjh at cs.mu.OZ.AU
Wed Nov 18 17:46:20 AEDT 1998


On 18-Nov-1998, Zoltan Somogyi <zs at cs.mu.OZ.AU> wrote:
> 
> > Mercury is a new general-purpose programming language, designed and
> > implemented by a group of researchers at the University of Melbourne,
> > Australia.  Mercury is based on the paradigm of purely declarative
> > programming, and was designed to be useful for the development of large
> > and robust ``real-world'' applications.  It improves on existing logic
> 
> Don't put real-world in quotes. The quotes act as a negation operator :-(

OK.

> > The following list contains a brief summary of the major new features
> > in releases 0.8.  For full details, see the NEWS file in the distribution
> 
> s/releases/release
> 
> > or <http://www.cs.mu.oz.au/mercury/release.html-0.8.html>.
> 
> Put the web reference first,

Done.

> > The type system now includes support for Haskell-style type classes.
> 
> You should also mention the limited support for existential types.

Existential types are in WORK_IN_PROGRESS rather than NEWS.
The lack of mode reordering for existential types makes them
a bit difficult to use, and they're completely undocumented.
So I think we should save that for next release.

> > The following list summarizes the major new features in release 0.7.2.
> > For full details, see the NEWS file in the distribution or
> > <http://www.cs.mu.oz.au/mercury/release.html-0.7.2.html>.
> 
> You should make clear that the above differences were between 0.7.2 and 0.8,
> and that the following ones are between 0.7 and 0.7.2.

Done.

Here's the next draft, which addresses the comments from zs, trd, and dgj.

--------------------

We are pleased to announce the release of version 0.8 of the Mercury system.

Mercury is a new general-purpose programming language, designed and
implemented by a group of researchers at the University of Melbourne,
Australia.  Mercury is based on the paradigm of purely declarative
programming, and was designed to be useful for the development of large
and robust real-world applications.  It improves on existing logic
programming languages by providing increased productivity, reliability
and efficiency, and by avoiding the need for non-logical program
constructs.  Mercury provides the traditional logic programming syntax,
but also allows the syntactic convenience of user-defined functions,
smoothly integrating logic and functional programming into a single
paradigm.

For more information about Mercury, see the Mercury WWW page at
<http://www.cs.mu.oz.au/mercury>.  For information about where
you can download Mercury 0.8, see the end of this message.

The following list contains a brief summary of the major
changes between release 0.7.2 and 0.8.  For full details,
see <http://www.cs.mu.oz.au/mercury/release.html-0.8.html>
or the NEWS file in the distribution.

Changes to the Mercury language:
- The type system now includes support for Haskell-style type classes.
- The module system now includes support for nested sub-modules.
- We have made some improvements to the C interface.
- We have added support for automatic tabling (memoization).
- We have added (tentative) support for exception handling.

Changes to the Mercury implementation:
- The implementation now includes a Mercury debugger.
- We've added a new source-to-source transformation: deforestation.
- The compiler can now perform type specialization.
- The Mercury profiler now supports memory profiling.

The following list contains a brief summary of the major
changes between release 0.7 and 0.7.2.  For full details,
see <http://www.cs.mu.oz.au/mercury/release.html-0.7.2.html>
or the NEWS file in the distribution.

Changes to the Mercury language:
- We have added some support for constraint handling.
- The C interface now includes generalized trailing support.
- It is now possible to stop the compiler from optimizing "impure"
  Mercury code inappropriately.
- We now support user-defined equality predicates.

Changes to the Mercury standard library:
- We have added support for arbitrary precision integers and
  arbitrary precision rational numbers.

New library packages in the `extras' distribution:
- We have added a CLP(R) interface.
- We have added some support for Prolog-style variables and coroutining.
- We have added library modules for backtrackable destructive update.
- We have added an interface to ODBC databases in extras/odbc. 

Changes to the Mercury compiler:
- We have added support for termination analysis.

The Mercury distribution is available via anonymous ftp or WWW
from the following locations:

	Australia:
		ftp://turiel.cs.mu.oz.au/pub/mercury/

We hope to be able to make it available at the following sites
too, eventually:

	Sunsite and mirrors: (source distribution only)
		ftp://sunsite.unc.edu/pub/Linux/Incoming/
		ftp://sunsite.unc.edu/pub/linux/devel/lang/mercury/

	USA:
		ftp://ftp.cs.sunysb.edu/pub/XSB/mercury/

	Europe:
		ftp://ftp.csd.uu.se/pub/Mercury/

The home page of the project on the Web is <http://www.cs.mu.oz.au/mercury/>.

--
The Mercury Team <http://www.cs.mu.oz.au/mercury/people.html>
Department of Computer Science, The University of Melbourne, Australia



More information about the developers mailing list