mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-17 06:47:17 +00:00
Estimated hours taken: 2 Branches: main Remove support for the Aditi backend. It is a pain to have to update it every time a data structure changes when we don't see any benefit from it, and its presence makes compilation of the compiler directory take about 10% longer (since the Aditi backend modules are roughly 10% of the code in the compiler directory). Deleting the Aditi-specific data structures from the HLDS should also speed up compilation a little bit. I have spoken to Rao and he is fine with this step. Aditi users, if there are any, can continue to use the Aditi support in release 0.12.*. I also tagged the last version on the trunk to support aditi with the name "last_aditi". The need for modifications in this Aditi support is likely to be very rare to nonexistent, if the recent past is any guide: the Aditi backend hasn't seen a nontrivial modification in a year or more. This diff removes a net 31492 lines. compiler/add_aditi.m: compiler/aditi_backend.pp: compiler/aditi_builtin_ops.m: compiler/context.m: compiler/dnf.m: compiler/magic.m: compiler/magic_util.m: compiler/rl.m: compiler/rl_analyse.m: compiler/rl_block.m: compiler/rl_block_opt.m: compiler/rl_code.m: compiler/rl_dump.m: compiler/rl_exprn.m: compiler/rl_file.pp: compiler/rl_gen.m: compiler/rl_info.m: compiler/rl_key.m: compiler/rl_liveness.m: compiler/rl_loop.m: compiler/rl_opt.m: compiler/rl_out.pp: compiler/rl_relops.m: compiler/rl_sort.m: compiler/rl_stream.m: Remove these compiler modules, since they existed only to support the Aditi backend. compiler/hlds_goal.m: Delete the Aditi-specific components of goals (e.g. the aditi-builtin kind of generic calls and Aditi-evaluated lambdas). compiler/hlds_pred.m: Delete the Aditi-specific components of pred_infos. compiler/prog_data.m: Delete the Aditi-specific items. compiler/passes_aux.m: Don't worry about processing all procedures or just all non-Aditi procedures. compiler/add_clause.m: Add a predicate from a deleted module that is now used only here. compiler/*.m: Conform to the data structure changes above. compiler/notes/*.html: Remove references to the Aditi backend. tests/invalid/aditi.m: tests/invalid/aditi_errors.err_exp: tests/invalid/aditi_errors.m: tests/invalid/aditi_private_builtin.m: tests/invalid/aditi_state_errors.err_exp: tests/invalid/aditi_state_errors.m: tests/invalid/aditi_update_derived_relation.err_exp: tests/invalid/aditi_update_derived_relation.m: tests/invalid/aditi_update_errors.err_exp: tests/invalid/aditi_update_errors.m: tests/invalid/aditi_update_mode_errors.err_exp: tests/invalid/aditi_update_mode_errors.m: tests/valid/aditi.m: tests/valid/aditi_calls_mercury.m: tests/valid/aditi_error_bug.m: tests/valid/aditi_error_bug2.m: tests/valid/aditi_error_bug3.m: tests/valid/aditi_private_builtin.m: tests/valid/aditi_query.m: tests/valid/aditi_update.m: tests/valid/base_relation.m: tests/valid/base_relation2.m: tests/valid/ite_to_disj.m: Remove these Aditi-specific tests. tests/*/Mmakefile: Remove the references to these Aditi-specific tests.
115 lines
3.7 KiB
HTML
115 lines
3.7 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> 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: 2006-02-23 09:37:20 $ by $Author: zs $@cs.mu.oz.au. <br>
|
|
</body>
|
|
</html>
|