diff: more documentation changes

Fergus Henderson fjh at cs.mu.oz.au
Mon Jul 28 02:33:41 AEST 1997


Update the documentation in preparation for the next release.

NEWS:
	Move the "Work in Progress" section to a separate file.
	Make the typography more consistent.  Various minor cleanups. 

WORK_IN_PROGRESS:
	New file, containing a cleaned up version of the
	"Work in Progress" section from the NEWS file.

BUGS, LIMITATIONS:
	Minor wording changes.

cvs diff: Diffing .
Index: BUGS
===================================================================
RCS file: /home/staff/zs/imp/mercury/BUGS,v
retrieving revision 1.6
diff -u -r1.6 BUGS
--- BUGS	1997/07/26 17:38:43	1.6
+++ BUGS	1997/07/27 05:07:48
@@ -44,8 +44,8 @@
 `--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.
+which does not conform to the ANSI C standard.  There is not much
+we can do about this one.
 
 -----------------------------------------------------------------------------
 Subject: nit in error msg
Index: LIMITATIONS
===================================================================
RCS file: /home/staff/zs/imp/mercury/LIMITATIONS,v
retrieving revision 1.10
diff -u -r1.10 LIMITATIONS
--- LIMITATIONS	1997/07/26 13:53:27	1.10
+++ LIMITATIONS	1997/07/26 18:58:33
@@ -23,7 +23,7 @@
 In addition, design decisions in this implementation have imposed the
 following fixed limits:
 
-* Predicates can have at most about 1000 arguments.
+* Predicates and functions can have at most about 1000 arguments.
 
 * Higher order terms are limited to arity of about 500.
 
Index: NEWS
===================================================================
RCS file: /home/staff/zs/imp/mercury/NEWS,v
retrieving revision 1.64
diff -u -r1.64 NEWS
--- NEWS	1997/07/26 18:52:33	1.64
+++ NEWS	1997/07/27 16:09:01
@@ -1,24 +1,3 @@
-Work in progress
-----------------
-
-* There is a new `--generate-bytecode' option --
-  but the bytecode interpreter isn't working yet.
-
-* There is a new `--generate-prolog' option
-  which does not work yet.
-
-* There is a new `--optimize-constructor-last-call' option
-  which identifies opportunities for LCO where a call
-  is followed only by some constructor invocations.
-  However, these opportunities are not exploited yet.
-
-* We now allow programmers to give names to the arguments of constructor
-  function symbols. XXX
-
-* Support for big tables of facts. XXX
-
-* Tabling/memoing of det and semidet predicates. XXX
-
 DRAFT NEWS for Mercury release 0.7
 ----------------------------------
 
@@ -47,10 +26,12 @@
 
   The C interface now handles Mercury functions properly --
   previously it only handled predicates, not functions. 
-  Also, exporting semidet predicates or functions to C now works
-  (see `samples/c_interface/c_calls_mercury.m' for some examples).
+  Also, exporting semidet predicates or functions to C now works.
   We've improved the documentation, and we've included some examples
   of how to use the C interface to interface with C++.
+  We also now support `main' being defined in C rather than in Mercury.
+
+  See samples/c_interface for examples of all of the above.
 
 * We now support cross-module optimizations.
 
@@ -126,16 +107,16 @@
     traversing and constructing terms of arbitrary type, and for
     accessing types at runtime.
 
-    	For traversing terms: 
+    	+ For traversing terms: 
     		Predicates argument/3, det_argument/3, functor/3,
 		and deconstruct/4.  These are similar to Prolog's arg/3,
 		functor/3, and '=..'.
 
-	For constructing terms:
+	+ For constructing terms:
 		Functions num_functors/1, construct/3 and
 		predicate get_functor/5.
 
-	For accessing and constructing types:
+	+ For accessing and constructing types:
 		Functions type_of/1, type_ctor/1, type_args/1,
 		type_ctor_name/1, type_ctor_arity/1, make_type/2,
 		and predicates type_ctor_and_args/3 and
@@ -152,7 +133,7 @@
     these changes make performing output quite a bit simpler;
     it's nice to be able to write `print("Foo = "), print(Foo), nl'.
 
-  - term_to_type/2 and type_to_term/2 are now implemented.
+  - The predicates term_to_type/2 and type_to_term/2 are now implemented.
 
   - We have a new module called time.m XXX to make benchmarking easier.
     The predicate report_stats, which used to be in std_util, is now
@@ -179,13 +160,13 @@
     arguments), and bag__remove (now semidet) to be consistent with set.m 
     and map.m. 
 
-  - There are two new predicates `io__tmpnam' and `io__remove_file',
+  - There are two new predicates io__tmpnam and io__remove_file,
     with semantics similar to the ANSI C functions tmpnam() and remove().
 
-  - There are new predicates `int__max_int', `int__min_int', 
-    `int__bits_per_int', `char__min_char_value', `char__max_char_value',
-    with semantics similar to INT_MAX, INT_MIN, (CHAR_BIT * sizeof(int)),
-    CHAR_MIN, and CHAR_MAX in ANSI C (respectively).
+  - There are new predicates int__max_int, int__min_int, int__bits_per_int,
+    char__min_char_value, and char__max_char_value, with semantics similar
+    to INT_MAX, INT_MIN, (CHAR_BIT * sizeof(int)), CHAR_MIN, and CHAR_MAX
+    in ANSI C (respectively).
 
   - We've added list__merge_and_remove_dups/4 and list__sort_and_remove_dups/4
     to complete the set of list__merge and list__sort operations.
@@ -218,12 +199,10 @@
     is remainder with respect to `//', whereas `div' truncates towards minus
     infinity, and `mod' is remainder with respect to `div'.
 
-  - The interface to arrays has changed significantly.  array.m has been
-    renamed bt_array.m (short for `backtrackable array') and uniq_array.m
-    has been renamed array.m.
-
-    The interfaces of both modules have been extended to make them closer
-    to each other.
+  - The old array.m module has been renamed bt_array.m (short for
+    "backtrackable array", or "binary tree array"), and uniq_array.m
+    has been renamed array.m.  The interfaces of both modules have been
+    extended to make them closer to each other.
 
     The following predicates have been added to array.m (formerly
     uniq_array.m):
@@ -232,9 +211,9 @@
 	  that it's designed for cases when you only want to make an
 	  array smaller, so you don't have to supply a filler element.
 
-	+ array__min/2, array__max/2, array__bounds/3  Finds the lower
-	  (in this implementation, always 0), upper and both bounds of
-	  a array respectively.
+	+ array__min/2, array__bounds/3  Find the lower bound or both
+	  bounds (respectively) of an array.  (In this implementation,
+	  the lower bound is always 0.)
 
     The following predicates have been added to bt_array.m (formerly
     array.m):
@@ -259,7 +238,4 @@
 	  array increased in bounds, the extra slots were filled with one
 	  particular element from the old bt_array.  The extra argument is
 	  the element to use to fill these slots instead.
-
-    See the modules array.m and bt_array.m or consult the library
-    reference for further details.
 
Index: WORK_IN_PROGRESS
===================================================================
RCS file: WORK_IN_PROGRESS
diff -N WORK_IN_PROGRESS
--- /dev/null	Mon Jul 28 02:27:28 1997
+++ WORK_IN_PROGRESS	Mon Jul 28 02:23:42 1997
@@ -0,0 +1,37 @@
+Work in progress
+----------------
+
+The compiler contains some code for the following features,
+which are not yet completed:
+
+* There is a new `--generate-bytecode' option --
+  but the bytecode interpreter isn't working yet.
+
+* There is a new `--generate-prolog' option
+  which does not work yet.
+
+* There is a new `--optimize-constructor-last-call' option
+  which identifies opportunities for LCO where a call
+  is followed only by some constructor invocations.
+  However, these opportunities are not exploited yet.
+
+* We now allow programmers to give names to the arguments of constructor
+  function symbols.  (Disabled, due to lack of a suitable operator.)
+
+* Support for big tables of facts.
+  (Only supports `string', `int', and `float'.  Not yet documented.)
+
+
+We also have some code that goes at least some part of the way towards
+implementing the features below.   However, for these features, the
+code has not yet been committed and thus is not part of the standard
+distribution.
+
+* Tabling/memoing of det and semidet predicates.
+
+* Support for Haskell-style type classes.
+
+* Support for user-defined equality axioms, for types which have
+  multiple representations of the same abstract value, e.g. sets
+  represented as unsorted lists.
+

-- 
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