mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-18 02:43:40 +00:00
Estimated hours taken: 1 NEWS: - Mention that the distribution is now split into core + extras. - Mention improved handling of grades. - Move the mention of DLL support to the WORK_IN_PROGRESS file. - Mention better constant-propagation optimization. - Fix an XXX: specify the location of lp_solve. - Change the description of the change to io__call_system to say that it was a bug fix, not an interface change. - For a few items, add pointers to their documentation. - Reorganize everything -- split it into four major sections: changes to the language, standard library, extra libraries, and the compiler. WORK_IN_PROGRESS: - Delete the mention of termination analysis, since this is now in the NEWS file. - Mention DLL support.
45 lines
1.8 KiB
Plaintext
45 lines
1.8 KiB
Plaintext
Work in progress
|
|
----------------
|
|
|
|
The compiler contains some code for the following features,
|
|
which are not yet completed:
|
|
|
|
* 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 `--generate-bytecode' option --
|
|
but the bytecode interpreter isn't working yet.
|
|
|
|
* There is a new `--generate-prolog' option
|
|
which does not work yet.
|
|
|
|
* 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.
|
|
|
|
* We now allow programmers to give names to the arguments of constructor
|
|
function symbols. (Disabled, due to lack of a suitable operator.)
|
|
|
|
* There are new options, `--make-transitive-optimization-interface' and
|
|
`--transitive-intermodule-optimization' which allow the compiler to
|
|
create `<module>.trans_opt' files. These files are similar to the
|
|
`<module>.opt' files, except `<module>.trans_opt' files may depend on
|
|
the information in other `<module>.trans_opt' files. Currently the
|
|
files are correctly created and read in, but the dependencies are not
|
|
correctly maintained, so the information in the `<module>.trans_opt'
|
|
files may be incorrect. For further details of what needs to be done,
|
|
see the beginning of the `trans_opt.m' file in the compiler directory.
|
|
|
|
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.
|
|
|
|
* Tabling/memoing of det and semidet predicates.
|
|
|
|
* Support for Haskell-style type classes.
|
|
|
|
* Support for heap profiling.
|