diff: documentation changes
Fergus Henderson
fjh at cs.mu.oz.au
Sat Jul 26 23:52:52 AEST 1997
Update the documentation in preparation for the next release.
BUGS:
Remove entries for bugs that we have fixed.
Point out that the bug with profiling & shared libraries
on DEC Alpha is Digital's fault, not ours.
LIMITATIONS:
Remove the entry for a limitation that we have fixed
(module qualifiers are fully implemented now, I think).
Add a brief remark about limitations in type and mode inference.
README:
Mention man pages, README.Linux, and README.MS-Windows.
Mention copyright on extras/graphics/Togl-1.2.
Remove mention of copyright on runtime/timing.c.
INSTALL:
Fix a mistake (`mmake install_opt_library' should have been
`mmake install_split_library').
Update the list of architectures for which we support gcc global
registers.
cvs diff: Diffing .
Index: BUGS
===================================================================
RCS file: /home/staff/zs/imp/mercury/BUGS,v
retrieving revision 1.4
diff -u -r1.4 BUGS
--- BUGS 1996/07/31 21:12:11 1.4
+++ BUGS 1997/07/26 12:39:07
@@ -35,31 +35,6 @@
io__write_string("\n").
-----------------------------------------------------------------------------
-Subject: bug with no_tag tags and partially instantiated data structures
-Date: Fri, 19 Apr 1996 19:47:18 +1000 (EST)
-
-> :- module bug.
-> :- interface.
-> :- type foo ---> foo(int).
-> :- pred bug(foo::out) is det.
-> :- implementation.
-> bug(Y) :-
-> Y = foo(_),
-> Z = 42,
-> Y = foo(Z).
-
-This gives the error "code_exprn__cache_exprn: existing definition of var".
-
------------------------------------------------------------------------------
-Subject: problem with lookup_switch
-Date: Sun, 5 May 1996 16:00:17 +1000 (EST)
-
-I think there's a bug in lookup_switch. What happens if you try to
-cross-compile for a 64 bit architecture on a 32 bit machine? I think
-it tries to compute the 64-bit bitmap table entries using 32-bit ints,
-which overflow.
-
------------------------------------------------------------------------------
Subject: map__lookup failed in profiler
Date: Tue, 7 May 1996 11:58:08 +1000 (EST)
@@ -68,6 +43,10 @@
map__lookup failed" message. The work-around is to link with
`--static'.
+This is actually due to a bug in the Alpha shared library mechanism,
+which does not conform to the ANSI C standard. So we do not plan to
+fix this one.
+
-----------------------------------------------------------------------------
Subject: nit in error msg
Date: Thu, 16 May 1996 10:25:42 +1000 (EST)
@@ -87,24 +66,6 @@
but I thought I'd point it out to you before I forgot it.
-----------------------------------------------------------------------------
-Subject: obscure bug with identical function and constructor
-Date: Sat, 25 May 1996 19:24:12 +1000 (EST)
-
-% This test case shows up an obscure bug in the compiler.
-% The compiler reports spurious mode errors in the compiler-generated
-% unification/compare/index predicates.
-% It's not quite clear whether or not this should be legal,
-% but the compiler ought to at least report a better error message.
-% If you write obfuscated code like this, you really deserve
-% what you get, but I guess we should fix the bug someday anyway...
-
-:- module nasty_func_test.
-:- type foo ---> f(int) ; g.
-
-:- func f(int) = foo.
-f(_) = g.
-
------------------------------------------------------------------------------
Subject: missed mode error
Date: Tue, 28 May 1996 02:27:34 +1000 (EST)
@@ -140,34 +101,5 @@
On the alpha, if the Mercury runtime catches a signal, it
sometimes prints out the wrong value for the PC.
-
------------------------------------------------------------------------------
-Subject: inference bug
-Date: Mon, 24 Jun 1996 15:48:12 +1000 (EST)
-
-The compiler sometimes aborts with a map_lookup failed
-after mode inference finds some mode errors.
-
------------------------------------------------------------------------------
-Subject: relation.m
-Date: Mon, 29 Jul 1996 16:34:46 +1000 (EST)
-
-relation__atsort does not correctly compute the topological sort for
-disconnected cliques. These cliques do not appear in the output list.
-
------------------------------------------------------------------------------
-Subject: cc_nondet and cc_multi disjunctions
-
-The code generator aborts with "Software Error: map__lookup failed"
-when compiling certain code involving disjunctions with output
-variables that occur in single-solution contexts, e.g.
-
-:- pred main(io__state::di, io__state::uo) is cc_multi.
-
-main --> io__read_line(Res),
- ( { Res = ok(['y']) }, io__write_string("Yes\n")
- ; { Res = ok(['n']) }, io__write_string("No\n")
- ; io__write_string("Huh?\n")
- ).
-----------------------------------------------------------------------------
Index: INSTALL
===================================================================
RCS file: /home/staff/zs/imp/mercury/INSTALL,v
retrieving revision 1.30
diff -u -r1.30 INSTALL
--- INSTALL 1996/07/25 16:31:28 1.30
+++ INSTALL 1997/07/26 12:59:16
@@ -81,13 +81,14 @@
# This can reduce the size of a hello world executable from ~400k
# to ~120k. (The only reason this is not the default is that
# installing the split libraries takes quite a long time. As a
-# compromise, the command `mmake install_opt_library LIBGRADES='
+# compromise, the command `mmake install_split_library LIBGRADES='
# will install a split version of the library just for the
# default grade.)
#
# Efficiency will be much improved if Mercury can use gcc global
-# register variables. Currently these are supported for mips, hppa,
-# sparc, alpha, and i386 (see runtime/regs.h and runtime/machdeps/*).
+# register variables. Currently these are supported for
+# mips, hppa, sparc, alpha, rs6000, and i386 architectures
+# (see runtime/regs.h and runtime/machdeps/*).
# If you want to use Mercury on some other CPU, contact us and
# we'll add support for gcc global registers for that CPU.
#
Index: LIMITATIONS
===================================================================
RCS file: /home/staff/zs/imp/mercury/LIMITATIONS,v
retrieving revision 1.9
diff -u -r1.9 LIMITATIONS
--- LIMITATIONS 1997/07/16 15:53:53 1.9
+++ LIMITATIONS 1997/07/26 12:42:55
@@ -10,14 +10,13 @@
* The compiler does not yet use structure reuse or compile-time
garbage collection to exploit unique modes :-(
-* Module qualifiers are not yet fully implemented (they are
- also not yet documented).
-
* It is not possible to give both `cc_multi' and `multi' (or `cc_nondet'
and `nondet') determinisms for the same mode of a predicate.
-* The order of mode declarations is significant:
- unique mode declarations must precede non-unique mode declarations.
+* The order of mode declarations is significant.
+ Unique mode declarations must precede non-unique mode declarations.
+
+* Type inference and mode inference are a bit imperfect.
We are working on eliminating all of these problems.
Index: README
===================================================================
RCS file: /home/staff/zs/imp/mercury/README,v
retrieving revision 1.22
diff -u -r1.22 README
--- README 1997/06/03 11:44:46 1.22
+++ README 1997/07/26 13:32:40
@@ -2,7 +2,7 @@
Mercury compiler, version 0.6.
The Mercury implementation is free software, but it is Copyright (C)
-1994-1996 The University of Melbourne. It is distributed under the terms
+1994-1997 The University of Melbourne. It is distributed under the terms
of the GNU General Public License. See the file COPYING for copying
permission. The Mercury library and runtime (the files in the library
and runtime subdirectories) are distributed under the terms of the GNU
@@ -12,27 +12,36 @@
arrangements, if the need should arise.) The subdirectory `boehm_gc'
contains a conservative garbage collector distributed by Hans Boehm -
see the file README in that directory for copyright information about
-those files. A few files (config*, runtime/timing.c) are derived from
-code that is copyright by the Free Software Foundation, Inc. The
-program `texi2html' in the doc directory is copyright by CERN; see the
-copyright notice at the end of that file.
+those files. A few files (config*) are derived from code that is
+copyright by the Free Software Foundation, Inc. The program `texi2html'
+in the doc directory is copyright by CERN; see the copyright notice at
+the end of that file. The `Togl' library in extras/graphics/Togl-1.2
+is copyright by Brian Paul and Ben Bederson; see the file
+extras/graphics/Togl-1.2/LICENCE.
THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK. See the file COPYING.
See the file INSTALL for installation instructions.
-But first read README.IRIX-5, README.AIX, or README.BSDI if you are
-installing on a machine running IRIX 5, AIX, or BSD Unix.
+But first read README.AIX, README.BSDI, README.IRIX-5, README.Linux,
+or README.MS-Windows if you are installing on a machine running
+AIX, BSD Unix, IRIX 5, Linux, or Microsoft Windows respectively.
The documentation sources are in the `doc' subdirectory. The installation
process will install INFO, HTML, and DVI versions in the locations specified
in the file Mmake.common - by default these locations are
/usr/local/mercury-0.6/info, /usr/local/mercury-0.6/lib/mercury/html,
and /usr/local/mercury-0.6/lib/mercury/doc respectively.
+The installation process will also install Unix-style man pages -
+by default they will be installed in /usr/local/mercury-0.6/man/man1.
The files RELEASE_NOTES, NEWS, HISTORY, LIMITATIONS, and BUGS
also contain useful information. If you're interested in looking
at the source code, the file compiler/notes/compiler_design.html is
a good place to start.
+
+The `samples' directory contains some example Mercury programs.
+There are also some additional Mercury programs and libraries
+in the `extras' directory.
For more information about Mercury, see the Mercury WWW home page at
http://www.cs.mu.oz.au/mercury, or send mail to mercury at cs.mu.oz.au.
--
Fergus Henderson <fjh at cs.mu.oz.au> | "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh> | of excellence is a lethal habit"
PGP: finger fjh at 128.250.37.3 | -- the last words of T. S. Garp.
More information about the developers
mailing list