for review: updates to WWW pages
Fergus Henderson
fjh at cs.mu.OZ.AU
Wed Nov 11 18:37:43 AEDT 1998
I don't plan to commit these until 0.8 has been released.
Also a few additional changes will be needed:
- fill in the exact release date
- fill in the sizes of the binary distributions
- update the ftp sites for the 0.8 distribution
But those will have to wait until the appropriate information is
available. So once 0.8 is released, I intend to commit this
diff and then make additional changes as required.
--------------------
w3/news/newsdb.inc:
w3/download/release-0.8.php3:
w3/download/release-0.8-contents.php3:
w3/download/release-0.8-bugs.php3:
w3/download/include/release.inc:
w3/download/include/release-0.8.inc:
w3/download/include/release-0.8-contents.inc:
w3/download/include/release-0.8-bugs.inc:
w3/download/include/old-release.inc:
w3/download/include/limitations.inc:
w3/download/Makefile:
Update the WWW pages to reflect the release of 0.8.
Index: w3/download/Makefile
===================================================================
RCS file: /home/staff/zs/imp/w3/download/Makefile,v
retrieving revision 1.3
diff -u -r1.3 Makefile
--- Makefile 1998/09/07 09:09:18 1.3
+++ Makefile 1998/11/09 16:07:39
@@ -12,20 +12,23 @@
release-0.6.html \
release-0.7.html \
release-0.7.3.html \
+ release-0.8.html \
release-0.3-bugs.html \
release-0.4-bugs.html \
release-0.5-bugs.html \
release-0.5.1-bugs.html \
release-0.6-bugs.html \
release-0.7-bugs.html \
+ release-0.8-bugs.html \
release-0.3-contents.html \
release-0.4-contents.html \
release-0.5-contents.html \
release-0.6-contents.html \
release-0.7-contents.html \
+ release-0.8-contents.html \
rotd.html
-current-release-bugs.html: release-0.7-bugs.inc
+current-release-bugs.html: release-0.8-bugs.inc
install: local_install
Index: w3/download/release-0.8-bugs.php3
===================================================================
RCS file: release-0.8-bugs.php3
diff -N release-0.8-bugs.php3
--- /dev/null Wed May 28 10:49:58 1997
+++ release-0.8-bugs.php3 Tue Nov 10 02:56:21 1998
@@ -0,0 +1,9 @@
+<HTML>
+<?
+ $title="Release 0.8 known problems";
+ $dir="download";
+ $root="..";
+ $include="release-0.8-bugs.inc";
+ include "$root/include/template.inc"
+?>
+</HTML>
Index: w3/download/release-0.8-contents.php3
===================================================================
RCS file: release-0.8-contents.php3
diff -N release-0.8-contents.php3
--- /dev/null Wed May 28 10:49:58 1997
+++ release-0.8-contents.php3 Tue Nov 10 02:56:28 1998
@@ -0,0 +1,9 @@
+<HTML>
+<?
+ $title="Release 0.8 Contents";
+ $dir="download";
+ $root="..";
+ $include="release-0.8-contents.inc";
+ include "$root/include/template.inc"
+?>
+</HTML>
Index: w3/download/release-0.8.php3
===================================================================
RCS file: release-0.8.php3
diff -N release-0.8.php3
--- /dev/null Wed May 28 10:49:58 1997
+++ release-0.8.php3 Tue Nov 10 02:56:34 1998
@@ -0,0 +1,9 @@
+<HTML>
+<?
+ $title="Release 0.8 Notes";
+ $dir="download";
+ $root="..";
+ $include="release-0.8.inc";
+ include "$root/include/template.inc"
+?>
+</HTML>
Index: w3/download/include/limitations.inc
===================================================================
RCS file: /home/staff/zs/imp/w3/download/include/limitations.inc,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 limitations.inc
--- limitations.inc 1998/09/01 02:41:57 1.1.1.1
+++ limitations.inc 1998/11/11 07:21:28
@@ -13,11 +13,7 @@
The compiler does not yet use structure reuse or compile-time
garbage collection to exploit unique modes.
<li>
-It is not possible to give both `cc_multi' and `multi'
-(or `cc_nondet' and `nondet') determinisms for the same mode of a predicate.
-<li>
-The order of mode declarations is significant:
-unique mode declarations must precede non-unique mode declarations.
+Type and mode inference a bit imperfect.
</ul>
In addition, design decisions in this implemenation have imposed
Index: w3/download/include/old-release.inc
===================================================================
RCS file: /home/staff/zs/imp/w3/download/include/old-release.inc,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 old-release.inc
--- old-release.inc 1998/09/01 02:41:53 1.1.1.1
+++ old-release.inc 1998/11/11 07:03:26
@@ -11,6 +11,105 @@
Please note, however, that the source and binaries for these
releases are often no longer available from the FTP site.
+<h3>Release 0.7.3</h3>
+
+On the 1st November, 1997, we released Mercury 0.7.3. Some installation
+problems with Windows, problems with the profiler and compatibility with
+GNU Make versions >= 3.76 were fixed. A few features were also added.
+
+<h3>Release 0.7.2</h3>
+
+On the 13th October, 1997 we released Mercury 0.7.2. This release fixed
+a few bugs, and added quite a few new features. Support was added
+for user-defined equality predicates and generalized trailing.
+We also split the distribution into "core" and "extras".
+
+<h3>Release 0.7</h3>
+
+On 15th August, 1997 we released Mercury 0.7.<p>
+
+<ul>
+ <li>
+ <a href = "release-0.7.html">
+ Release notes for 0.7
+ </a>
+
+ <li>
+ <a href = "release-0.7-contents.html">
+ Contents of release 0.7 distribution
+ </a>
+
+ <li>
+ <a href = "release-0.7-bugs.html">
+ Known problems with release 0.7
+ </a>
+
+ <li>
+ <a href = "limitations.html">
+ Limitations of the current release.
+ </a>
+</ul>
+
+<h4>Source Distribution of Mercury 0.7</h4>
+
+<dl>
+<dt>
+The full source distribution is 4.8Mb.<br>
+<dd> Distribution:
+<a href = "ftp://turiel.cs.mu.OZ.AU/pub/mercury/mercury-0.7.tar.gz">Australia</a>
+<a href = "ftp://ftp.cs.sunysb.edu/pub/XSB/mercury/mercury-0.7.tar.gz">USA</a>
+<a href = "ftp://ftp.csd.uu.se/pub/Mercury/mercury-0.7.tar.gz">Europe</a>
+</dl>
+
+<h4>Binary Distribution of Mercury 0.7</h4>
+
+<dl>
+ <dt>x86 machines running Linux (ELF executable format) (4.9Mb):
+ <dd> Distribution:
+<a href = "ftp://turiel.cs.mu.OZ.AU/pub/mercury/mercury-0.7.i386-linux-ELF.tar.gz">Australia</a>
+<a href = "ftp://ftp.cs.sunysb.edu/pub/XSB/mercury/mercury-0.7.i386-linux-ELF.tar.gz">USA</a>
+<a href = "ftp://ftp.csd.uu.se/pub/Mercury/mercury-0.7.i386-linux-ELF.tar.gz">Europe</a>
+ <p>
+
+ <dt>Sun SPARC machines running Solaris 2.x and SunOS 5.x (5.5Mb):
+ <dd> Distribution:
+<a href = "ftp://turiel.cs.mu.OZ.AU/pub/mercury/mercury-0.7.sparc-sun-solaris.tar.gz">Australia</a>
+<a href = "ftp://ftp.cs.sunysb.edu/pub/XSB/mercury/mercury-0.7.sparc-sun-solaris.tar.gz">USA</a>
+<a href = "ftp://ftp.csd.uu.se/pub/Mercury/mercury-0.7.sparc-sun-solaris.tar.gz">Europe</a>
+
+ <p>
+ <dt>DEC Alpha machines running OSF/1 or Digital Unix (11.2Mb):
+ <dd> Distribution:
+<a href = "ftp://turiel.cs.mu.OZ.AU/pub/mercury/mercury-0.7.alpha-dec-osf.tar.gz">Australia</a>
+<a href = "ftp://ftp.cs.sunysb.edu/pub/XSB/mercury/mercury-0.7.alpha-dec-osf.tar.gz">USA</a>
+<a href = "ftp://ftp.csd.uu.se/pub/Mercury/mercury-0.7.alpha-dec-osf.tar.gz">Europe</a>
+
+ <p>
+ <dt>x86 machines running Windows 95 or Windows NT (2.9Mb):
+ <dd> Distribution:
+<a href = "ftp://turiel.cs.mu.OZ.AU/pub/mercury/mercury-0.7.i386-windows.tar.gz">Australia</a>
+
+</dl>
+
+<h4>FTP Sites for Mercury 0.7</h4>
+<dl>
+ <dt> Australia:
+
+ <dd>
+ <a href = "ftp://turiel.cs.mu.OZ.AU/pub/mercury">
+ ftp://turiel.cs.mu.OZ.AU/pub/mercury</a>
+
+ <dt> USA:
+ <dd>
+ <a href = "ftp://ftp.cs.sunysb.edu/pub/XSB/mercury">
+ ftp://ftp.cs.sunysb.edu/pub/XSB/mercury</a>
+
+ <dt> Europe:
+ <dd>
+ <a href = "ftp://ftp.csd.uu.se/pub/Mercury">
+ ftp://ftp.csd.uu.se/pub/Mercury</a>
+</dl>
+
<h3>Release 0.6.2-1</h3>
On the 2nd of June, 1997, Debian GNU/Linux 1.3 was released, including a
Index: w3/download/include/release-0.8-bugs.inc
===================================================================
RCS file: release-0.8-bugs.inc
diff -N release-0.8-bugs.inc
--- /dev/null Wed May 28 10:49:58 1997
+++ release-0.8-bugs.inc Wed Nov 11 18:26:16 1998
@@ -0,0 +1,140 @@
+<h2>Release 0.8 - Known Problems</h2>
+
+The following is collected email of reported problems with release
+0.8 of the Mercury distribution. Included, where possible, are
+patches.
+
+<p>
+<hr>
+<p>
+Subject: bug report - Inf and NaN
+<br>
+Date: Wed, 4 Oct 1995
+<p>
+The following module causes an "undefined variable Inf" error in the
+generated C code, because 1E400 == Infinity, which gets printed as `Inf'.
+<p>
+<pre>
+:- module hello.
+:- interface.
+:- import_module io.
+
+:- pred main(io__state::di, io__state::uo) is det.
+
+:- implementation.
+
+main -->
+ io__write_float(1E400),
+ io__write_string("\n").
+</pre>
+<p>
+<hr>
+<p>
+Subject: map__lookup failed in profiler
+<br>
+Date: Tue, 7 May 1996
+<p>
+When profiling programs that have been compiled on the Alpha using
+shared libraries, the profiler will abort with a "Software Error:
+map__lookup failed" message. The work-around is to link with
+`--static'.
+<p>
+This is actually due to a bug in the Alpha shared library mechanism,
+which does not conform to the ANSI C standard. So there is not
+much we can do about this one.
+<p>
+<hr>
+<p>
+Subject: nit in error msg
+<br>
+Date: Thu, 16 May 1996
+<p>
+Here's another small error in an error message. If you comment out
+the [] clause for the functions car/1 or cdr/1, you get this message:
+<p>
+<pre>
+fntest.m:023: In `car(in) = out':
+fntest.m:023: Error: determinism declaration not satisfied.
+fntest.m:023: Declared `det', inferred `semidet'.
+fntest.m:023: in argument 1 of clause head:
+fntest.m:023: unification of `HeadVar__1' and `[X | V_4]' can fail.
+</pre>
+<p>
+It says Declared `det', inferred `semidet', but I never declared it at
+all. It's a bit misleading. Certainly not a major problem, and the
+later part of the message makes it quite clear what the problem is,
+but I thought I'd point it out to you before I forgot it.
+
+<p>
+<hr>
+<p>
+Subject: missed mode error
+<br>
+Date: Tue, 28 May 1996
+<p>
+Another one for the bug report file:
+<p>
+The goal `some [X, Y] X \= Y' should be a mode error,
+but the current mode checker doesn't report an error.
+Instead, the compiler goes on to generate code which gives
+the wrong answer. For example, the following program prints out `no'.
+The same problem also occurs with `some [X, Y] (X = Y -> fail ; true)'.
+<p>
+<pre>
+:- module bug.
+:- interface.
+:- import_module io.
+
+:- pred main(io__state::di, io__state::uo) is det.
+
+:- implementation.
+
+main -->
+ ( { p } -> io__write_string("yes\n") ; io__write_string("no\n") ).
+
+:- pred p is semidet.
+p :-
+ some [X, Y] X \= Y.
+</pre>
+<p>
+The bug occurs only when the variables being unified inside a negated
+context are not live, i.e. when it is the last occurrence of those variables.
+
+<p>
+<hr>
+<p>
+Subject: bug with PC values on Alpha
+<br>
+Date: Wed, 12 Jun 1996
+<p>
+On the alpha, if the Mercury runtime catches a signal, it
+sometimes prints out the wrong value for the PC (program counter).
+<p>
+<hr>
+Subject: inter-module optimization and abstract exported equivalence types.
+<br>
+Date: Thu, 19 Feb 1998
+<p>
+In some cases the compiler reports spurious ambiguity errors when compiling
+with `--intermodule-optimization'. This is due to the definition of abstract
+exported equivalence types being made visible by inter-module optimization.
+In this example, with `--intermodule-optimization' the compiler sees the
+declaration `:- type var == int' from term.m and then cannot determine whether
+`Elem' has type `int' or `pair(int)'.
+The work-around is to add an explicit type qualification.
+<pre>
+:- module foo.
+:- interface.
+:- import_module list, term.
+:- pred test(list(var)::in) is det.
+:- implementation.
+:- import_module int, std_util.
+
+test(Args0) :-
+ MakeIndex =
+ lambda([Elem0::in, Elem::out, Index0::in, Index::out] is det, (
+ Elem = Elem0 - Index0,
+ Index is Index0 + 1
+ )),
+ list__map_foldl(MakeIndex, Args0, _, 0, _).
+</pre>
Index: w3/download/include/release-0.8-contents.inc
===================================================================
RCS file: release-0.8-contents.inc
diff -N release-0.8-contents.inc
--- /dev/null Wed May 28 10:49:58 1997
+++ release-0.8-contents.inc Tue Nov 10 03:00:07 1998
@@ -0,0 +1,32 @@
+<h2>Release 0.8 - Contents</h2>
+
+<ul>
+ <li> an autoconfiguration script
+ <li> the Mercury source for the compiler
+ <li> the Mercury source for the standard library
+ <li> the automatically generated C source for the compiler
+ and the standard library
+ <li> the runtime system (written in C)
+ <li> Hans Boehm's conservative garbage collector for C
+ <li> a profiler
+ <li> a debugger
+ <li> some utility programs, including a make front-end for
+ Mercury with automatic dependency recomputation
+ <li> the Mercury language reference manual
+ <li> the Mercury library reference manual
+ <li> the Mercury user's guide
+ <li> the Mercury frequently asked questions list
+ <li> the Prolog to Mercury transition guide
+ <li> some sample Mercury programs
+ <li> some extra libraries for
+ <ul>
+ <li> processing HTML forms using the CGI interface
+ <li> arithmetic on complex and imaginary numbers
+ <li> graphics using Tk and OpenGL
+ <li> exception handling
+ <li> backtrackable (trailed) destructive update
+ <li> an ODBC database interface
+ <li> a CLP(R) interface, i.e. constraint solving over real numbers
+ </ul>
+ <li> a test suite
+</ul>
Index: w3/download/include/release-0.8.inc
===================================================================
RCS file: release-0.8.inc
diff -N release-0.8.inc
--- /dev/null Wed May 28 10:49:58 1997
+++ release-0.8.inc Tue Nov 10 03:15:50 1998
@@ -0,0 +1,292 @@
+<h2>New in release 0.8 of the Mercury distribution</h2>
+
+<h3>Changes to the Mercury language:</h3>
+
+<ul>
+<li> The type system now includes support for Haskell-style type classes. <p>
+
+ Type classes let you specify an interface and then provide multiple
+ different implementations of that interface. They're similar to
+ abstract base classes in C++ or "interfaces" in Java.
+ See the "Type classes" chapter of the Mercury Language Reference Manual
+ for details. <p>
+
+ Unlike Haskell 1.4, Mercury supports multi-parameter type classes,
+ but we do not (yet) support constructor classes, and nor do we
+ support default methods. <p>
+
+<li> Mode inference can now infer "mostly-unique" modes as well as
+ "unique" modes. <p>
+
+<li> You can now declare both committed-choice ("cc") and backtracking (non-cc)
+ modes for the same predicate. <p>
+
+ Determinism analysis will pick the appropriate one to use for each
+ call based on the context. <p>
+
+<li> The module system now includes support for sub-modules. <p>
+
+ The aim of this extension is twofold. One aim is to provide more
+ fine-grained encapsulation control: nested sub-modules within a
+ single source file provide a convenient method for encapsulating
+ units smaller than a source file. The other aim is to provide better
+ support for structuring large software packages that consist of many
+ source files. Sub-modules can be defined in separate files, with
+ separate compilation, which means that you can also use this feature
+ to combine a group of existing Mercury modules into a single logical
+ package, with proper namespace control and encapsulation. <p>
+
+ See the "Modules" chapter of the Mercury language reference manual
+ for details. <p>
+
+<li> We have made more improvements to the C interface. <p>
+
+ The C interface now includes support for defining procedures
+ that can have multiple solutions (i.e. those whose determinism
+ is `nondet' or `multi') in C. <p>
+
+ Also there's a new declaration, `pragma import', which is a bit
+ like the existing `pragma c_code' declaration except that
+ instead of giving a C code fragment, you just give the name
+ of a C function. `pragma import' is like the inverse of the
+ existing `pragma export' declaration. <p>
+
+<li> We have added support for automatic tabling (memoization). <p>
+
+ See the "Tabled evaluation" subsection of the "Implementation-dependent
+ pragmas" section of the "Pragmas" chapter of the Mercury language
+ reference manual. <p>
+
+<li> We have added (tentative) support for exception handling. <p>
+
+ The interface to exception handling is actually via an `exception.m'
+ library module rather than a new language construct.
+ For now, this module is located in the `extras/exceptions'
+ directory, which is part of the `mercury-extras' distribution,
+ but our intent is to eventually migrate this into the Mercury
+ standard library if experience with its use proves positive. <p>
+
+ The exception handling interface uses committed choice nondeterminism
+ to avoid some semantic problems with previous exception handling
+ proposals. <p>
+
+ See the documentation in the interface of `exception.m' for details. <p>
+
+</ul>
+
+<h3>Changes to the Mercury standard library:</h3>
+
+<ul>
+<li> There is also a new builtin function promise_only_solution/1,
+ for calling `cc_multi' or `cc_nondet' code from `det' or `semidet'
+ procedures. See the "builtin" chapter of the Mercury Library
+ Reference Manual for details. <p>
+
+<li> The getopt module now supports a new type of option data, namely
+ `maybe_int(maybe(int))', to allow optional arguments with integer values.
+ There is also a new corresponding lookup predicate,
+ getopt__lookup_maybe_int_option/3. <p>
+
+ See the "getopt" chapter of the Mercury Library Reference Manual for
+ details. <p>
+
+<li> Support for memory profiling: new predicates report_full_memory_stats/0
+ in benchmarking.m and io__report_full_memory_stats/2 in io.m. <p>
+
+ See the "benchmarking" chapter of the Mercury Library Reference Manual
+ for details. <p>
+
+<li> Miscellaneous new predicates. <p>
+
+ The Mercury standard library now includes the following new predicates: <p>
+
+ bag__det_remove_list/3 <br>
+ bag__least_upper_bound/3 <br>
+ bag__remove_list/3 <br>
+ det_univ_to_type/2 <br>
+ eqvclass__same_eqvclass_list/2 <br>
+ io__read_line_as_string/{3,4} <br>
+ list__take_upto/3 <br>
+ map__det_insert_from_assoc_list/3 <br>
+ map__det_intersect/5 <br>
+ map__det_union/5 <br>
+ map__intersect/4 <br>
+ map__sorted_keys/2 <br>
+ map__to_sorted_assoc_list/2 <br>
+ map__union/4 <br>
+ relation__add_values/4 <br>
+ relation__compose/3 <br>
+ relation__from_assoc_list/2 <br>
+ set__count/2 <br>
+ set_ordlist__count/2 <br>
+ store__new_cyclic_mutvar/4 <br>
+ varset__select/3 <p>
+
+ In addition, there are four new system constants added to the float
+ library module, float__radix, float__mantissa_digits, float__min_exponent
+ and float__max_exponent. There are also predicate equivalents for these. <p>
+
+ Also the old relation__to_assoc_list/2 predicate has been renamed as
+ relation__to_key_assoc_list/2; there is a new relation__to_assoc_list/2
+ predicate with a different type for the second argument. <p>
+
+ See the Mercury Library Reference Manual for details. <p>
+
+<li> A few library procedures that have implicit side effects and are thus
+ intended for debugging use only have been declared `impure'.
+ You will need to write `impure' before every call to these procedures
+ and typically you will need to add a `pragma promise_pure' declaration
+ for the callers. <p>
+
+ The predicates affected are report_stats/0 and report_full_memory_stats/0
+ in library/benchmarking.m; unsafe_dump/2, unsafe_dump_float/1, and
+ unsafe_dump_tableaus/0 in extras/clpr/dump.m; and debug_freeze/3
+ and debug_freeze/4 in extras/trailed_update/var.m. <p>
+
+<li> The interface to the predicate term__compare/4 was found to be error-prone,
+ and so we are phasing it out; it is declared with `pragma obsolete'
+ in this version, so any use of it will now result in a warning, and
+ the predicate will be removed entirely in some future version. <p>
+
+<h3>Changes to the Mercury implementation:</h3>
+
+<li> We've added a new source-to-source transformation - deforestation. <p>
+
+ Deforestation transforms conjunctions to avoid the construction
+ of intermediate data structures and to avoid multiple traversals
+ over data structures. Deforestation is enabled at optimization level
+ `-O3' or higher, or by using the `--deforestation' option. <p>
+
+<li> The compiler can now perform type specialization. <p>
+
+ Type specialization removes the overhead of polymorphic code, including
+ code which uses typeclasses. The disadvantage is increased code size.
+ Currently we do not perform inter-module type specialization.
+ Type specialization is enabled by using the `--type-specialization' option. <p>
+
+<li> We've added support for "transitive" inter-module analysis. <p>
+
+ With the previous support for inter-module optimization, when
+ analysing a module, the compiler could make use of information
+ about the modules that it imports directly, but not about
+ modules that are imported indirectly. "Transitive" inter-module
+ analysis gives the compiler information about indirectly
+ imported modules. <p>
+
+ However, currently this is only used for termination analysis;
+ optimizations such as inlining still use only ordinary inter-module
+ analysis, not transitive inter-module analysis. <p>
+
+<li> Array bounds checking can now be disabled. <p>
+
+ To disable array bounds checking, you must compile with
+ `--intermodule-optimization' enabled and you must also
+ define the C macro ML_OMIT_ARRAY_BOUNDS_CHECKS (e.g. by using
+ `MGNUCFLAGS=-DML_OMIT_ARRAY_BOUNDS_CHECKS' in your Mmakefile).
+ [XXX we also need to fix problems with intermodule inlining heuristics.] <p>
+
+<li> Domain checking for higher mathematical operations can now be disabled. <p>
+
+ To disable domain checking, you must compile with
+ `--intermodule-optimization' enabled and you must also
+ define the C macro ML_OMIT_MATH_DOMAIN_CHECKS (e.g. by using
+ `MGNUCFLAGS=-DML_OMIT_MATH_DOMAIN_CHECKS' in your Mmakefile). <p>
+
+ See the Mercury Library Reference Manual for details. <p>
+
+<li> We've added some primitive debugging support. <p>
+
+ The runtime system now includes a "four-port" style debugger
+ (actually with eight ports).
+ To use this debugger, you need to build your program with debugging
+ enabled, which is normally done using the `--debug' (or `-g') option,
+ and then run it using the `mdb' command, e.g. `mdb a.out'.
+ Type `h' at the `mdb>' prompt for a list of the available commands,
+ or see the "Debugging" chapter of the Mercury User's Guide for further
+ details. <p>
+
+<li> The support for debugging using Prolog now includes support for
+ detailed control over how terms are printed out during debugging. <p>
+
+ See the "Using Prolog" section of the Mercury User's Guide for details.
+ However, for most purposes we now recommend using the native Mercury
+ debugger rather than debugging using Prolog. <p>
+
+<li> The Mercury profiler has a number of new features. <p>
+
+ The profiler now supports profiling just user time, or profiling
+ real (elapsed) time, rather than profiling user + system time.
+ We've also added support for memory profiling. <p>
+
+ See the "Profiling" chapter of the Mercury User's Guide for details. <p>
+
+<li> Profiling should now work on MS Windows. <p>
+
+ To enable profiling on MS Windows, you need to have Sergey
+ Okhapkin's latest version of gnu-win32 that includes his patch to add
+ support for setitimer(). Sergey's "CoolView" version of cygwin.dll
+ is available via <http://miracle.geol.msu.ru/sos/>; his patch will
+ probably also be included in the next (b19) release of gnu-win32.
+ Note that on Windows, you must use the Mercury runtime system's `-Tr'
+ (profile real time) option; profiling just user time or user + system
+ time is still not supported on Windows, because to the best of our
+ knowledge Windows doesn't provide the necessary system calls. <p>
+
+<li> Intermediate files can be placed in subdirectories. <p>
+
+ If you use the `--use-subdirs' option to `mmake' or `mmc',
+ then they will create the various intermediate files used
+ by the Mercury implementation in a subdirectory called `Mercury'
+ rather than in the current directory. (For `mmake', if there
+ is already a `Mercury' subdirectory, then this option is the default.)
+ This keeps your source directories much less cluttered. <p>
+
+<li> Mmake has a new variable GRADEFLAGS for specifying options that
+ affect the grade (compilation model). <p>
+
+ This means that for example to enable profiling, you can build with
+ `GRADEFLAGS = --profiling' in your Mmakefile, rather than having to
+ use the more obscure incantation `GRADE = asm_fast.gc.prof'. <p>
+
+<li> Mmake now supports per-file settings of MCFLAGS and other *FLAGS
+ variables. <p>
+
+ For example, if you want to disable singleton variable warnings just
+ for a single module `horrible_code.m', you can just include the line <p>
+
+ MCFLAGS-horrible_code = --no-warn-singleton-variables <p>
+
+ in your Mmakefile. <p>
+
+<li> Mmake now warns about variables which are defined but not used. <p>
+
+ To disable this warning, use the `-w-' or `--no-warn-undef-variables'
+ option. <p>
+
+<li> The components of the argument to the `--grade' option and of the `GRADE'
+ Mmake variable may now be given in any order. The compiler also has a
+ new option `--output-grade-string' which prints the canonical grade string
+ for the set of options with which the compiler was invoked. <p>
+
+<li> Mmake now runs a bit faster, particularly on Windows. <p>
+
+<li> We've made a few small improvements to the efficiency of the generated code. <p>
+
+<li> The system has been ported to Linux/PPC. <p>
+
+<li> The system has been ported to work with version b19 of cygwin32
+ (this port has not been tested well, though).
+ See README.MS-Windows for details. <p>
+
+<li> We've updated to version 4.13alpha2 of the Boehm garbage collector. <p>
+
+<li> We've made the MERCURY_OPTIONS environment variable somewhat easier to use. <p>
+
+<li> Mtags is now able to produce tags for typeclass declarations. It is
+ also able to produce tags files in the extended format supported by
+ recent versions of Vim and Elvis. Do `mtags --help' for more
+ information. <p>
+
+<li> Numerous bug fixes. <p>
+
+</ul>
Index: w3/download/include/release.inc
===================================================================
RCS file: /home/staff/zs/imp/w3/download/include/release.inc,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 release.inc
--- release.inc 1998/09/01 02:41:53 1.1.1.1
+++ release.inc 1998/11/11 06:56:30
@@ -1,22 +1,22 @@
<h2>Current Release</h2>
-The current stable release is Mercury 0.7. See below for details
-on this release.<p>
+We're currently in the process of releasing Mercury 0.8.
+The NEWS file, detailing differences since the release of 0.7.3,
+is available <a href="release-0.8.html">here</a>.
+When 0.8 is ready for release, it will be available
+at the following site(s):
-The current development release is Mercury 0.7.3. The NEWS file,
-detailing differences since the release of 0.7 is available <a
-href="release-0.7.3.html">here</a>. We don't provide binary packages for
-development releases, so you will need to compile some C code to use
-this release.
-
-The Mercury 0.7.3 source distribution is available for download from the
-following sites:
-
<dl>
<dt> Australia
<dd> <a href = "ftp://turiel.cs.mu.OZ.AU/pub/mercury">
ftp://turiel.cs.mu.OZ.AU/pub/mercury</a><br>
The Mercury ftp site in Melbourne, Australia.
+</dl>
+
+We hope to eventually make the source distribution for 0.8
+available at these sites too:
+
+<dl>
<dt> USA
<dd> USA <a href = "ftp://sunsite.unc.edu/pub/Linux/devel/lang">
ftp://sunsite.unc.edu/pub/Linux/devel/lang</a><br>
@@ -29,42 +29,24 @@
its equivalent place on the mirrors.
</dl>
-<h3>Release 0.7.3</h3>
-
-On the 1st November, 1997, we released Mercury 0.7.3. Some installation
-problems with Windows, problems with the profiler and compatibility with
-GNU Make versions >= 3.76 were fixed. A few features have also been
-added.
-
-<h3>Release 0.7.2</h3>
-
-On the 13th October, 1997 we released Mercury 0.7.2. This release fixed
-a few bugs, and added quite a few new features. Support was added
-for user-defined equality predicates and generalized trailing.
-We also split the distribution into "core" and "extras".
-
-<h3>Release 0.7</h3>
-
-On 15th August, 1997 we released Mercury 0.7.<p>
-
<a name="known">
<h3>Information</h3>
</a>
<ul>
<li>
- <a href = "release-0.7.html">
- Release notes for 0.7
+ <a href = "release-0.8.html">
+ Release notes for 0.8
</a>
<li>
- <a href = "release-0.7-contents.html">
- Contents of release 0.7 distribution
+ <a href = "release-0.8-contents.html">
+ Contents of release 0.8 distribution
</a>
<li>
- <a href = "release-0.7-bugs.html">
- Known problems with release 0.7
+ <a href = "release-0.8-bugs.html">
+ Known problems with release 0.8
</a>
<li>
@@ -115,49 +97,50 @@
<h3>Source Distribution</h3>
+(Note that some of these URLs may be dangling links until the mirrors
+are fully updated.)
+
<dl>
<dt>
-The full source distribution is 4.8Mb.<br>
+The full source distribution is about 5Mb.<br>
<dd> Distribution:
-<a href = "ftp://turiel.cs.mu.OZ.AU/pub/mercury/mercury-0.7.tar.gz">Australia</a>
-<a href = "ftp://ftp.cs.sunysb.edu/pub/XSB/mercury/mercury-0.7.tar.gz">USA</a>
-<a href = "ftp://ftp.csd.uu.se/pub/Mercury/mercury-0.7.tar.gz">Europe</a>
+<a href = "ftp://turiel.cs.mu.OZ.AU/pub/mercury/mercury-0.8.tar.gz">Australia</a>
</dl>
<h3>Binary Distribution</h3>
-Binary distributions of Mercury 0.7:
+Binary distributions of Mercury 0.8:
<br>
-(Note that some of these URLs may be dangling links until the mirrors
-are fully updated.)
+(Note that these URLs will be dangling links until we have
+installed all the binary distributions.)
<p>
<dl>
- <dt>x86 machines running Linux (ELF executable format) (4.9Mb):
+ <dt>x86 machines running Linux (ELF executable format) (about 14Mb):
<dd> Distribution:
-<a href = "ftp://turiel.cs.mu.OZ.AU/pub/mercury/mercury-0.7.i386-linux-ELF.tar.gz">Australia</a>
-<a href = "ftp://ftp.cs.sunysb.edu/pub/XSB/mercury/mercury-0.7.i386-linux-ELF.tar.gz">USA</a>
-<a href = "ftp://ftp.csd.uu.se/pub/Mercury/mercury-0.7.i386-linux-ELF.tar.gz">Europe</a>
+<a href = "ftp://turiel.cs.mu.OZ.AU/pub/mercury/mercury-0.8.i386-linux-ELF.tar.gz">Australia</a>
+<a href = "ftp://ftp.cs.sunysb.edu/pub/XSB/mercury/mercury-0.8.i386-linux-ELF.tar.gz">USA</a>
+<a href = "ftp://ftp.csd.uu.se/pub/Mercury/mercury-0.8.i386-linux-ELF.tar.gz">Europe</a>
<p>
- <dt>Sun SPARC machines running Solaris 2.x and SunOS 5.x (5.5Mb):
+ <dt>Sun SPARC machines running Solaris 2.x and SunOS 5.x (size unknown):
<dd> Distribution:
-<a href = "ftp://turiel.cs.mu.OZ.AU/pub/mercury/mercury-0.7.sparc-sun-solaris.tar.gz">Australia</a>
-<a href = "ftp://ftp.cs.sunysb.edu/pub/XSB/mercury/mercury-0.7.sparc-sun-solaris.tar.gz">USA</a>
-<a href = "ftp://ftp.csd.uu.se/pub/Mercury/mercury-0.7.sparc-sun-solaris.tar.gz">Europe</a>
+<a href = "ftp://turiel.cs.mu.OZ.AU/pub/mercury/mercury-0.8.sparc-sun-solaris.tar.gz">Australia</a>
+<a href = "ftp://ftp.cs.sunysb.edu/pub/XSB/mercury/mercury-0.8.sparc-sun-solaris.tar.gz">USA</a>
+<a href = "ftp://ftp.csd.uu.se/pub/Mercury/mercury-0.8.sparc-sun-solaris.tar.gz">Europe</a>
<p>
- <dt>DEC Alpha machines running OSF/1 or Digital Unix (11.2Mb):
+ <dt>DEC Alpha machines running OSF/1 or Digital Unix (size unknown):
<dd> Distribution:
-<a href = "ftp://turiel.cs.mu.OZ.AU/pub/mercury/mercury-0.7.alpha-dec-osf.tar.gz">Australia</a>
-<a href = "ftp://ftp.cs.sunysb.edu/pub/XSB/mercury/mercury-0.7.alpha-dec-osf.tar.gz">USA</a>
-<a href = "ftp://ftp.csd.uu.se/pub/Mercury/mercury-0.7.alpha-dec-osf.tar.gz">Europe</a>
+<a href = "ftp://turiel.cs.mu.OZ.AU/pub/mercury/mercury-0.8.alpha-dec-osf.tar.gz">Australia</a>
+<a href = "ftp://ftp.cs.sunysb.edu/pub/XSB/mercury/mercury-0.8.alpha-dec-osf.tar.gz">USA</a>
+<a href = "ftp://ftp.csd.uu.se/pub/Mercury/mercury-0.8.alpha-dec-osf.tar.gz">Europe</a>
<!--
<p>
- <dt>x86 machines running Windows 95 or Windows NT (2.9Mb):
+ <dt>x86 machines running Windows 95 or Windows NT (size unknown):
<dd> Distribution:
-<a href = "ftp://turiel.cs.mu.OZ.AU/pub/mercury/mercury-0.7.i386-windows.tar.gz">Australia</a>
+<a href = "ftp://turiel.cs.mu.OZ.AU/pub/mercury/mercury-0.8.i386-windows.tar.gz">Australia</a>
-->
@@ -166,7 +149,6 @@
<h3>FTP Sites</h3>
<dl>
<dt> Australia:
-
<dd>
<a href = "ftp://turiel.cs.mu.OZ.AU/pub/mercury">
ftp://turiel.cs.mu.OZ.AU/pub/mercury</a>
Index: w3/news/newsdb.inc
===================================================================
RCS file: /home/staff/zs/imp/w3/news/newsdb.inc,v
retrieving revision 1.9
diff -u -r1.9 newsdb.inc
--- newsdb.inc 1998/11/04 06:21:20 1.9
+++ newsdb.inc 1998/11/11 07:18:25
@@ -16,6 +16,13 @@
$newsdb = array(
+"18 November 1998" => array("Mercury 0.8 to be released",
+
+"We're currently in the process of releasing Mercury version 0.8.
+Release information can be found
+<A HREF=\"download/release-0.8.html\">here</A>."
+),
+
"30 Sep 1998" => array("New paper: Type classes in Mercury.",
"A new paper, describing our implementation of type classes in Mercury,
@@ -51,12 +58,6 @@
<em>mercury-users</em> mailing lists.
Thanks to <a href=\"mailto:petdr at cs.mu.oz.au\">Peter Ross</a>
for all his work on it."
-),
-
-"1 Sep 1998" => array("Mercury 0.8 due for release during September.",
-
-"We aim to release the long awaited Mercury 0.8 sometime this month.
-Keep watching here for further information."
),
"4 Aug 1998" => array("Mmake extensions.",
--
Fergus Henderson <fjh at cs.mu.oz.au> | "Binaries may die
WWW: <http://www.cs.mu.oz.au/~fjh> | but source code lives forever"
PGP: finger fjh at 128.250.37.3 | -- leaked Microsoft memo.
More information about the developers
mailing list