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