mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-14 13:23:53 +00:00
Estimated hours taken: 0.2 Branches: main HISTORY: NEWS: RELEASE_NOTES: compiler/notes/work_in_progress.html: Update compiler documentation on the main branch to take account of the 0.12 release. scripts/mercury_config.in: When reconfiguring don't abort because files need by the .NET and Java runtime aren't present.
121 lines
4.0 KiB
HTML
121 lines
4.0 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>.
|
|
We're still working on this.
|
|
|
|
<li> There is a `--target java' option, which generates Java.
|
|
We still need to add support for Java foreign language interfacing,
|
|
and implement the Mercury standard library for Java.
|
|
|
|
<li> Thread-safe engine (the `.par' grades).
|
|
|
|
<li> Independent AND-parallelism (the `&' parallel conjunction operator).
|
|
See Tom Conway's PhD thesis.
|
|
|
|
<li>
|
|
We have incomplete support for a new, more expressive design for representing
|
|
information about type classes and type class instances at runtime. When
|
|
complete, the new design would allow runtime tests of type class membership,
|
|
it would allow the tabling of predicates with type class constraints,
|
|
and it would allow the debugger to print type_class_infos.
|
|
|
|
<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> 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.
|
|
|
|
<li> Support for GCC 3.3 in the native code back-end.
|
|
This is on the "gcc_3_3" branch of our CVS repository.
|
|
|
|
</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: 2005-09-13 03:36:44 $ by $Author: juliensf $@cs.mu.oz.au. <br>
|
|
</body>
|
|
</html>
|