for review: changes to todo.html

Fergus Henderson fjh at cs.mu.OZ.AU
Thu Jun 25 04:55:45 AEST 1998


Hi,

Can someone please review this one?

-----------------------------------------------------------------------------

compiler/notes/todo.html:
	Delete some things that have been done, and add a couple of new
	things to the todo list and wish list.

Index: compiler/notes/todo.html
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/notes/todo.html,v
retrieving revision 1.5
diff -u -r1.5 todo.html
--- todo.html	1997/07/10 06:44:42	1.5
+++ todo.html	1998/06/24 18:50:18
@@ -53,22 +53,10 @@
 
 <h2> determinism analysis </h2>
 
-<ul>
-<li> allow overloading of nondet/multidet and cc_nondet/cc_multidet
-  determinism for the same mode of a predicate.
-</ul>
-
 <h2> unique modes </h2>
 
 <ul>
-<li> handle unique mode overloading better -
-  don't depend on the order of the mode declarations.
-
-<li> handle overloading of unique and mostly_unique modes.
-  Currently in modes.m we always pick the unique version, and then in
-  unique_modes.m, if it turns out out to be mostly_unique, we report an
-  error.  We should changed unique_modes.m to also look for a
-  mostly_unique version before reporting an error.
+<li> handle nested unique modes
 
 <li> we will probably need to extend unique modes a bit,
      in as-yet-unknown ways; need more experience here
@@ -85,18 +73,23 @@
 <li> imports should not be transitive
   (currently we get this right for predicates, constants, and functors,
   but wrong for types, insts, and modes).
+
+<li> there are some problems with nested modules (see the language
+  reference manual)
+
 </ul>
 
 <h2> C interface </h2>
 
 <ul>
-<li> document it properly
-
-<li> nondeterministic C code
+<li> document `pragma import' and nondet C code interface
 
 <li> exporting things for manipulating Mercury types from C
 
 <li> better support for types defined in C
+
+<li> need to deal with memory management issues
+
 </ul>
 
 <h2> code generation </h2>
@@ -128,7 +121,7 @@
      i.e. allow universal quantifiers at the top level of
      higher-order types, e.g. <samp>:- pred foo(all [T] pred(T)).</samp>.
 
-<li> type classes
+<li> constructor classes (is there really much need for this?)
 
 <li> allow a module exporting an abstract type to specify that other modules
      should not be allowed to test two values of that type for equality (similar
@@ -206,12 +199,6 @@
 <li> allow floating point fields of structures without boxing
 	(need multi-word fields)
 
-<li> The generated code should include some more profiling hooks.
-     In particular, we should add a version of the heap allocation
-     macro which takes an extra string parameter identifying which
-     routine allocated the memory.  Then we can do heap-allocation
-     profiling to identify which routines use up all the bloody memory.
-
 <li> inter-procedural register allocation 
 
 <li> stack allocation of structures
@@ -229,6 +216,7 @@
 
 <li> transform non-tail-recursive predicates into tail-recursive form
      using accumulators
+	[being worked on by petdr]
 
 <li> deforestation and partial deduction
 	[being worked on by stayl]
@@ -241,10 +229,10 @@
      the real registers into the fake_reg array and back)
 
 <li> tail recursion optimization using pass-by-reference argument conventions
+	[being worked on by dmo]
 
 <li> other specializations, e.g. if argument is known to be bound to
      f(X,Y), then just pass X and Y in registers
-	[being worked on by petdr]
 
 <li> trim stack frames before making recursive calls, to minimize stack usage
      (this would probably be a pessimization much of the time - zs)
@@ -290,9 +278,6 @@
 	[being worked on by conway]
 
 <li> implement streams (need coroutining at least)
-
-<li> implement tabling
-	[tabling in the absence of negation done by ohutch, but not committed]
 
 <li> implement a very fast turn-around bytecode compiler/interpreter/debugger,
      similar to Gofer

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