Files
mercury/compiler/notes/work_in_progress.html
Simon Taylor 6ad6080623 Make the "work in progress" file appear on the web site.
Estimated hours taken: 0.5
Branches: main

Make the "work in progress" file appear on the web site.

compiler/notes/work_in_progress.html:
compiler/notes/Mmakefile:
	Add a a htmlized version of WORK_IN_PROGRESS.

WORK_IN_PROGRESS:
	Removed.

Mmakefile:
	Generate WORK_IN_PROGRESS and TODO from the files
	in compiler/notes.

w3/information/include/developer.inc:
	Add the "work in progress" file to the developer documentation.
2002-10-23 06:30:07 +00:00

117 lines
3.9 KiB
HTML

<html>
<head>
<title>
Work In Progress
</title>
</head>
<body bgcolor="#ffffff" text="#000000">
<hr>
<!---------------------------------------------------------------------------->
The compiler contains some code for the following features,
which are not yet completed, but which we hope to complete
at some time in the future:
<p>
<ul>
<li> There is a
<a href="http://www.cs.mu.oz.au/mercury/dotnet.html">`--target il'</a>
option, which generates MSIL code for Microsoft's new
<a href="http://msdn.microsoft.com/net/">.NET Common Language Runtime</a>.
<li> There is a
<a href=http://www.cs.mu.oz.au/mercury/download/gcc-backend.html>`--target asm'</a>
option, which generates assembler by
interfacing directly with the GCC back-end, rather than going via C.
<li> There is a `--target java' option, which generates Java.
<li> Thread-safe engine (the `.par' grades).
<li> Independent AND-parallelism (the `&' parallel conjunction operator).
<li> We have added support for dynamic link libraries (DLLs) on Windows.
This is not yet enabled by default because it has not yet been tested
properly.
<li> 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.
<li> There is a new garbage collector that does accurate garbage
collection (hlc.agc grade). See the comments in
compiler/ml_elim_nested.m and the paper on our web page for more details.
<li> Mercury is now the official programming language for Melbourne University's
<a href="http://www.cs.mu.oz.au/aditi">Aditi deductive database system</a>.
The Mercury compiler includes incomplete support for interfacing to Aditi.
In particular, the support for executing ordinary Mercury code within
Aditi queries is currently poor.
<li> The Mercury debugger (mdb) now includes support for declarative
debugging. There are still some limitations to be dealt with, and
some improvements are yet to be made. See the
<a href="http://www.cs.mu.oz.au/mercury/information/doc-latest/user_guide_toc.html">Mercury User's Guide</a>
for further details.
<li> There is a `--generate-bytecode' option, for a new back-end
that generates bytecode. The bytecode generator is basically
complete, but we don't have a bytecode interpreter.
</ul>
<p>
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.
<p>
<ul>
<li> A new implementation of the mode system using constraints.
This is on the "mode-constraints" branch of our CVS repository.
<li> Support for aliasing in the mode system.
This is on the "alias" branch of our CVS repository.
<li> Support for automatic structure reuse (reusing old data
structures that are no longer live, rather than allocating
new memory on the heap) and compile time garbage collection
This is on the "reuse" branch of our CVS repository.
<li> Better support for inter-module analysis and optimization.
</ul>
<hr>
<!-------------------------->
<h2>
Work Not In Progress
</h2>
The compiler also contains some code for the following features,
but work on them has stopped, since finishing them off would be
quite a bit more work, and our current priorities lie elsewhere.
Still, these could make interesting and worthwhile projects
if someone has the time for it.
<p>
<ul>
<li> A SOAP interface.
<li> A bytecode interpreter, for use with the `--generate-bytecode' option.
<li> Sequence quantification (see the
<a href="http://www.cs.mu.oz.au/research/mercury/information/reports/minutes_15_12_00.html">description</a> from the meeting minutes).
</ul>
</html>
<hr>
<!-------------------------->
Last update was $Date: 2002-10-23 06:30:07 $ by $Author: stayl $@cs.mu.oz.au. <br>
</body>
</html>