Files
mercury/compiler/notes/work_in_progress.html
Zoltan Somogyi 0607c27543 Update the style (and in some places, the content) of the notes.
The non-style changes include

- Replacing outdated information with up to date information.

- Deleting fully obsolete information, such as references to the IL backend.

- Replacing list entries that were just bare words or phrases
  with full sentences, where this is useful.

- Improvements to make documents easier to read and understand.

However, the bulk of the diff consists of style changes. The initial main
of these changes are to eliminate, or at least reduce, inconsistencies

- between the styles of the different parts of each document, and
- between the styles of differents documents.

This applies both as they appear in a browser, and in the source .html file.

The main style changes are

- Add a vim mode line to each file.

- Do not specify a color for the page background; let the browser decide.

- Add a heading to the top of each page that echoes the title.

- Avoid SHOUTING in headings.

- Avoid the unneeded use of <hr>.

- Avoid the use of headings (e.g. h5) that are so low in the hierarchy that
  browsers render them in a font that is *smaller* than the usual font.

- Replace definition lists with standard unordered lists
  when the list items are not definitions.

- Replace ordered lists with standard unordered lists
  when the list items have no meaningful order.

- Do not indent the contents of unordered lists, with the exception of
  nested lists.

- Unless all entries in a list are extremely short,
  do not try to put anything next to <li>.

- Fix violations reported by weblint.

compiler/notes/compiler_design.html:
    The changes described above.

    Explicitly introduce the notion of the middle end.

compiler/notes/bootstrapping.html:
    Rewrite this almost from scratch.

compiler/notes/work_in_progress.html:
    Rename the page to make it clear that these issues are NOT being
    worked on.

compiler/notes/release_checklist.html:
compiler/notes/todo.html:
    Note that these lists are quite out of date.

compiler/notes/allocation.html:
compiler/notes/analysis.html:
compiler/notes/bytecode.html:
compiler/notes/c_coding_standard.html:
compiler/notes/coding_standards.html:
compiler/notes/developer_intro.html:
compiler/notes/failure.html:
compiler/notes/gc_and_c_code.html:
compiler/notes/glossary.html:
compiler/notes/grade_library.html:
compiler/notes/index.html:
compiler/notes/interface_files.html:
compiler/notes/mlds_tail_recursion.html:
compiler/notes/overall_design.html:
compiler/notes/promise_ex.html:
compiler/notes/reviews.html:
compiler/notes/trailing.html:
compiler/notes/type_class_transformation.html:
compiler/notes/upgrade_boehm_gc.html:

compiler/notes/Mmakefile:
    Add a target to run weblint on all the HTML files.
2019-10-16 17:53:49 +11:00

69 lines
1.8 KiB
HTML

<!--
vim: ts=4 sw=4 expandtab ft=html
-->
<html>
<head>
<title>Work not in progress</title>
</head>
<body>
<h1>Work not in progress</h1>
The compiler contains some code for the following features,
which are not yet completed but work on which 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>
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 an accurate garbage collector (the 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 back-end that generates bytecode.
The bytecode generator is basically complete,
but we don't have a bytecode interpreter.
<li>
A new implementation of the mode system using constraints.
<!--
<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.
<li>
A SOAP interface.
<!--
<li>
Better support for inter-module analysis and optimization.
-->
<!--
<li>
Sequence quantification
-->
</ul>
</body>
</html>