This list applies to all the optional modules one can install for CLC-INTERCAL,
not just to the Base package. It would be better to split this list and have
each item listed in the most relevant package. However, if a package has a TODO
or MISSING file, it is intended to supplement what's in here.

The following files are intended to be in the distribution but have not
been included in this pre-escape:

    bin/oo,\ ick (ditto -- use bin/sick)
    Language/INTERCAL/Backend/Uncompile.pm - attempt to get INTERCAL source
	by any means possible: if the object has some source code, it is
	extracted; any compiled code without a source is disassembled.
    doc/examples/quantum/next-from.i
    more doc/examples/*.i
    some of the test scripts (which will say "Skipped: not implemented"
	or words to that effect during "make test"); also, some of the
	ones provided could do with more tests

The following are known bugs:

    in the quantum emulator, after a quantum CONVERT and SWAP the whole
	opcode list is made into quantum bits, rather than just the opcodes
	affected: the result is that a subsequent CONVERT or SWAP on
	different opcodes will not affect all possible alternative universes.
    using intercalc --line, command completion works the way it displays the
	completion list could be improved: this is being studied and might
	be done as early as 1.-94.-2.5
    using intercalc --curses, after for example opening a menu it would be
	nice to highlight the option under the mouse cursor so one knows
	for sure where one will be clicking. The code to follow the mouse
	position is actually there but it seems that either the curses C
	library of the Curses Perl module never call it even though they
	both accept the request to do so.
    using quantum statements in the calculator can produce unexpected results
    reloading the compiler while using the calculator is fully supported, for
	example to switch between 'sick' and 'ick'; however at present changes
	made to the compiler before reloading do not correctly propagate to
	the reloaded compiler: the correct behaviour is to reapply all changes
	to the new compiler, taking into account the fact that the new compiler
	may be completely different from the old one. This is not as simple as
	it sounds.

The following functionality is missing:

    The documentation is not currently installed by "make install"; the Makefile
	target which would install it is currently empty.
    Politesse checking.
    The user interfaces work with intercalc but are not yet powerful enough
	for use with sick.
    The optimiser (optimise.iacc is provided, empty, as a placeholder)
	Additionally, "iacc.iacc" (and "iacc.io") do not currently provide
	syntax to create optimisers (you can, of course, write your own
	extensions for that).
    The Curses interface requires some sort of scrollbars. It works fine if
	the top window fits in the screen, but makes a mess if it doesn't.
	In a standard 80x25 terminal this means: oic yes, anything else no.
    The X interface also needs some sort of scrollbars, but this is not as
	urgent as the problem only appears with a large text window, such as
	the trace window after a few commands are traced, or the history
	window after a lot of commands.
    The compiler could be made to do a lot more work at compile time, leaving
	less for the runtime. For example, if a program contains CREATE
	statements, it is possible to avoid recompilation at runtime in most 
	cases, by recompiling the program with the extended grammar but
	recording that the new rules introduced are not enabled.
	Maybe this could be enabled only if optimisation is requested.
    Related to the previous point, the compiler compiler just stores the list
	of CREATE statements necessary to recreate the compiler when a user
	program is compiled. This could be improved by running the code
	generated by the compiler compiler and storing the completed grammar.
	However this turns out to be a small fraction of the compile time, so
	it isn't a priority to do anything about that.

Patches to implement any of the above will be gratefully received: please
email them to compiler (whirlpool) intercal.org.uk, including the word
INTERLEAVING in the subject (or the message may be ignored as spam). Please
specify whether you wish your contribution to remain anonymous, and if not,
what name do you want to be added to the CLC-INTERCAL hall of shame.
Alternatively, find the way to do this sort of things on the git repository
or open an issue.

