mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-18 23:35:25 +00:00
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.
117 lines
3.9 KiB
HTML
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>
|