[m-rev.] for post-commit review: update release notes for 13.05 release

Paul Bone paul at bone.id.au
Wed Apr 24 16:11:51 AEST 2013


On Wed, Apr 24, 2013 at 03:43:33PM +1000, Julien Fischer wrote:
> Update release notes for 13.05 release.
> 
> RELEASE_NOTES:
> Mercury now works on 64-bit Windows.
> 
> Update email and web addresses for the project.
> 
> The distribution is no longer split into three parts.
> 
> Mention that we have a module for doing arithmetic on
> fixed-point numbers.
> 
> Mention the GLFW binding.
>  The Mercury team are no longer at the University of
> Melbourne.  (And the CSSE departement no longer exists
> by that name, anyway.)
> 
> Julien.

Your e-mails are formatted strangely lately (this week I think).  You might
want to fix this.

> diff --git a/RELEASE_NOTES b/RELEASE_NOTES
> index 5504ac2..69531b7 100644
> --- a/RELEASE_NOTES
> +++ b/RELEASE_NOTES
> @@ -1,5 +1,5 @@
> 
> -We are pleased to announce the release of version 12.08 of the Mercury
> system.
> +We are pleased to announce the release of version 13.05 of the Mercury
> system.
> 
>  Mercury is a modern general-purpose programming language, designed and
>  implemented by a small group of researchers at the University of
> @@ -18,112 +18,112 @@ For a list of what's new in this release, see the
> NEWS file.
>  The main features of Mercury are:
> 
>       o  Mercury is purely declarative: predicates and functions
> - in Mercury do not have non-logical side effects.
> -
> - Mercury does I/O through built-in and library predicates that
> - take an old state of the world and some other parameters, and
> - return a new state of the world and possibly some other
> - results.  The language requires that the input argument
> - representing the old state of the world be the last reference
> - to the old state of the world, thus allowing it the state of
> - the world to be updated destructively.  The language also
> - requires that I/O take place only in parts of the program where
> - backtracking will not be needed.
> -
> - Mercury handles dynamic data structures not through Prolog's
> - assert/retract but by providing several abstract data types in
> - the standard Mercury library that manage collections of items
> - with different operations and tradeoffs.
> +        in Mercury do not have non-logical side effects.
> +
> +        Mercury does I/O through built-in and library predicates that
> +        take an old state of the world and some other parameters, and
> +        return a new state of the world and possibly some other
> +        results.  The language requires that the input argument
> +        representing the old state of the world be the last reference
> +        to the old state of the world, thus allowing it the state of
> +        the world to be updated destructively.  The language also
> +        requires that I/O take place only in parts of the program where
> +        backtracking will not be needed.

I suggest:

The language requires that the input argument representing the state of the
world before a call be the most recent reference to the state of the world.

> +
> +        Mercury handles dynamic data structures not through Prolog's
> +        assert/retract but by providing several abstract data types in
> +        the standard Mercury library that manage collections of items
> +        with different operations and tradeoffs.
> 

I suggest removing the Prolog comparison.  Only prolog programmers find this
helpful and I think it gets in the way of the point for other readers.

[snip]

> 
>       o  Mercury has a module system.  Programs consist of one or more
> - modules.  Each module has an interface section that contains
> - the declarations for the types, functions and predicates
> - exported from the module, and an implementation section that
> - contains the definitions of the exported entities and also
> - definitions for types and predicates that are local to the
> - module.  A type whose name is exported but whose definition is
> - not, can be manipulated only by predicates in the defining
> - module; this is how Mercury implements abstract data types.
> - For predicates and functions that are not exported, Mercury
> - supports automatic type, mode, and determinism inference.
> +        modules.  Each module has an interface section that contains
> +        the declarations for the types, functions and predicates
> +        exported from the module, and an implementation section that
> +        contains the definitions of the exported entities and also
> +        definitions for types and predicates that are local to the
> +        module.  A type whose name is exported but whose definition is
> +        not, can be manipulated only by predicates in the defining
> +        module; this is how Mercury implements abstract data types.
> +        For predicates and functions that are not exported, Mercury
> +        supports automatic type, mode, and determinism inference.
> 

This might be a good place to say that this isn't enabled by default.  The
programmer must give mmc some options, and what those options are.

>       o  Mercury supports higher-order programming,
> - with closures, currying, and lambda expressions.
> +        with closures, currying, and lambda expressions.
> 
>       o  Mercury is very efficient (in comparison with existing logic
> - programming languages).  Strong types, modes, and determinism
> - provide the compiler with the information it needs to generate
> - very efficient code.
> +        programming languages).  Strong types, modes, and determinism
> +        provide the compiler with the information it needs to generate
> +        very efficient code.
> 
>  The Mercury compiler is written in Mercury itself.  It was originally
>  bootstrapped using NU-Prolog and SICStus Prolog.  This was possible
> @@ -144,8 +144,8 @@ The Mercury compiler can also compile Mercury programs
> to Java, C# or
>  Erlang.  See README.Java, README.CSharp, and README.Erlang respectively
>  for further details.
> 
> -The current Mercury system has been tested on Linux (x86), Linux (x86_64),
> -Mac OS X (x86 and x86_64), and Windows (x86).
> +The current Mercury system has been tested on Linux (x86 and x86_64),
> +Mac OS X (x86 and x86_64), and Windows (x86 and x86_64).
>  For Windows, we have tested this release on Windows XP SP3, Windows 7,
>  and Windows Server 2008 R2.
> 
> @@ -156,17 +156,18 @@ Mac OS X (PowerPc) and Windows 95, 98, ME, NT and
> 2000.
> 
>  It should run without too many changes on other Unix variants as well.
>  If you do encounter any problems, please report them to via the
> -Mercury bug tracking system at <http://bugs.mercury.csse.unimelb.edu.au>
> +Mercury bug tracking system at <http://bugs.mercurylang.org>
>  (see the BUGS file).

I need to change this URL when I fix SSL.  Remind me to do this before we
release.



-- 
Paul Bone
http://www.bone.id.au



More information about the reviews mailing list