 0.01 - This alpha version was rushed out of the doors because of I promised
	to release the compiler "first thing on April 1st 1999" - I released
	it at 1.01am BST (aka 0.01 GMT) on April 1st, so that does count
	as "first thing". There are six known bugs^H^H^H^H restrictions:

	1. Double-oh-seven is not supported (that's actually rather easy to
	   add, but it would have required five extra minutes and we had this
	   "first thing" deadline)
	2. The parser does not quite work with some of the compound gerunds
	   (READING OUT, WRITING IN  and COMING FROM - use READING, WRITING
	   and COMING for just now).
	3. It is possible to ABSTAIN FROM GIVING UP and REINSTATE GIVING UP
	   (both by gerund and by label). If you need a definite no-op,
	   use DO NOTHING or perhaps DON'T PANIC.
	4. Neither of the random compiler bugs has been implemented.
	5. We forgot to include this file in the distribution.
	6. The runtime does not check for array bounds when accessing
	   subscripts.

 0.02 - Fixed all bugs listed above:

	1. Double-oh-seven is now supported (and there's a test program to
	   test it).
	2. The parser has been changed to recognise compound gerunds with
	   or without the suffix (so you can write READING or READING OUT
	   and they both work). While doing this we found a bug - RESUMING
	   happened to be written RESUING in the parser's tables. Fixed.
	3. The runtime now refuses to alter the ABSTAIN status of a GIVE UP,
	   so this bug is also fixed.
	4. The reqired bugs have been added. The compiler will always add one
	   bug to each program. At runtime, the bug will be executed with
	   probability 5% (this can be reduced to 0%). However, whenever the
	   bug is skipped there is a 0.005% probability that it will
	   mysteriously executed anyway.
	5. If you are reading this, this bug must have been fixed.
	6. The runtime does now.

      - Added subscript checks for all array access (wasn't there before)
        (pity, it allowed the Turing Machine program to dynamically reallocate
	the tape array. Oh well)

      - Added some more test scripts

      - Fixed one bug in the unary operators, which shifted instead of
	rotating right their operand.

      - Documented the undocumented (and renamed it to "formerly undocumented")
	compiler directives

      - Added support for different compiler back ends, the default being the
	Perl back end (compile into a Perl subroutine). A C back end might
	be made available at some point (compile into a C program), as well
	as a PerlMod backend (create a Perl module).

      - Added support for a (not yet written) optimiser.

      - Added a standalone (command-line) compiler, 'oo, ick' (with embedded
	space and comma).

      - Changed the precedence rules in the parser to make it compatible
	with C-INTERCAL. This was not a bug as the specification is vague
	enough that almost anything is correct, but it makes it easier to
	adapt C-INTERCAL programs if they follow the same rules.

 0.03 - Added a mechanism to help using separate compilation units -- although
	they must arrive all together at the back ends. At execution time,
	they all run in sequence in the order they were linked, when one GIVEs
	UP the next one starts. The command-line compiler, 'oo, ick', now
	automatically links together all programs and parse trees it sees on
	the command line, in the order it sees them.
 
       Slightly changed the semantics of BELONGS TO when one register belongs
	to more than one other register. This was never documented anyway, as
	the documentation only says "this is confusing but not an error". Now
	the most recent buyer is the main owner.

      - Provided a new back end to the compiler, 'PerlText', which saves the
	perl code to a file instead of compiling it on the fly. It takes one
	argument, the name of the file to create. The command-line compiler,
	'oo, ick' defaults to create program.pl if the source is program.i
	or program.ipt and this back end is selected.

      - Written a bit of the optimiser:
	* Constant folding in all expressions.
	* Removes any ABSTAIN / REINSTATE statement which is always executed
	  (i.e. from the start of the program to the first COME FROM or label
	  which is referenced by a NEXT or STUDY), replacing the DO / DON'T
	  as appropriate.
	* Converts any computed COME FROM for which the label can be guessed
	  at compile time to a normal COME FROM.

	Added placeholders for other optimisations.
	
	Added new test programs to make sure that a program and its optimised
	version do actually produce the same results.

      - Fixed a problem with COME FROM which had a probability assigned,
	but were nevertheless always executed. Now they are treated like
	computed COME FROMs and evaluated at runtime for their probability.

      - Rewritten the parser to just mark with a splat anything with syntax
	errors, instead of barfing. This is required by the language specs.
	To help the programmer, the splat is followed by an error code, which
	is documented somewhere. As I was there, I've enhanced the readability
	of the parser itself by splitting it into subroutines and removing
	three of the four large regular expressions, and reducing the fourth
	one from fiftyeight (58) lines to a manageable fiftyone (51).

	After all, this isn't the April 1st release any more...

 0.04 - Noticed that the input routine did not accept OH for ZERO and NINER
	for NINE - fixed. Also some other minor bugs hunted and squashed.

      - Allowed nonconstant probabilities (DO %.1 .1 <- #1). Thanks to
	Adam J. Thornton for this valuable suggestion (the responsibility
	for actually doing this instead of taking it as a joke is all mine).
	Changed the test program t/33-double-oh-seven.t to test for this
	(it's now been renamed t/33-007.t for no reason).

      - Changed function _roman in Language::INTERCAL::PerlRuntime to
	correspons more closely to the behaviour of INTERCAL-72.

      - Added rules for Quantum INTERCAL in the parser (see reference manual)
	and added emulation of quantum computers on multithreaded systems in
	the "Perl" and "PerlText" backends (see reference manual for this too).

      - Completely rewritten runtime library to allow for easier
	interoperability of quantum and non-quantum programs.

