mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-05-01 17:24:34 +00:00
Estimated hours taken: 0.5 Remove the `--convert-to-goedel' option. It doesn't really work and it's a hassle to maintain. Remove the `--generate-prolog' and `--prolog-dialect' options. They aren't implemented, and now that we have a proper debugger they probably never will be. compiler/mercury_to_goedel.m: Removed. compiler/notes/compiler_design.html: Remove mercury_to_goedel.m. compiler/globals.m: compiler/handle_options.m: Remove code dealing with Prolog dialects. compiler/options.m: doc/user_guide.texi: Remove the options. compiler/prog_io.m: Delete a comment referring to Mercury-to-Goedel converters. compiler/mercury_compile.m: Don't call convert_to_goedel. NEWS: Document the removal of the `--convert-to-goedel' option. WORK_IN_PROGRESS: Remove a reference to the `--generate-prolog' option.
77 lines
2.9 KiB
Plaintext
77 lines
2.9 KiB
Plaintext
Work in progress
|
|
----------------
|
|
|
|
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:
|
|
|
|
* There is a `--target il' option, which generates MSIL code
|
|
for Microsoft's new .NET common language runtime.
|
|
See <http://www.cs.mu.oz.au/mercury/dotnet.html> and/or
|
|
<http://www.cs.mu.oz.au/mercury/information/dotnet/mercury_and_dotnet.html>.
|
|
|
|
* There is a `--target asm' option, which generates assembler by
|
|
interfacing directly with the GCC back-end, rather than going via C.
|
|
|
|
* Thread-safe engine.
|
|
|
|
* Independent AND-parallelism.
|
|
|
|
* 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.
|
|
|
|
* 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.
|
|
|
|
* There is a new garbage collector that does accurate garbage
|
|
collection (.agc grade). It is currently limited to deterministic
|
|
code, and needs a great deal of tuning and optimization. It also
|
|
needs testing.
|
|
|
|
* Mercury is now the official programming language for Melbourne Uni's
|
|
"Aditi" deductive database system. The Mercury compiler includes
|
|
support for interfacing to Aditi. However Aditi itself is not yet
|
|
complete and has not yet been made publicly available.
|
|
(The Aditi support is documented in doc/reference_manual.texi,
|
|
but for now that documentation is commented out -- it's not
|
|
included in the formatted versions of the reference manual,
|
|
only in the TexInfo source code.)
|
|
|
|
* Converting procedures to tail-recursive form via automatic
|
|
accumulator introduction (--introduce-accumulators).
|
|
|
|
* The Mercury debugger (mdb) now includes some support for declarative
|
|
debugging.
|
|
|
|
* 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.
|
|
|
|
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.
|
|
|
|
* A bytecode interpreter, for use with the `--generate-bytecode' option.
|
|
|
|
* A `--target java' option, which generates Java.
|
|
|
|
* Support for aliasing in the mode system.
|
|
|
|
* 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
|
|
|
|
* Sequence quantification (see the description in
|
|
http://www.cs.mu.oz.au/research/mercury/information/reports/minutes_15_12_00.html).
|
|
|
|
* A SOAP interface.
|
|
|
|
* A QuickCheck-style module for software testing.
|
|
|
|
* Improvements to the debugger's pretty-printer.
|
|
|