Change optimiser policy, and fix optimiser bugs
authorAlex Smith <ais523@bham.ac.uk>
Thu, 26 Aug 2010 20:30:49 +0000 (21:30 +0100)
committerAlex Smith <ais523@bham.ac.uk>
Thu, 26 Aug 2010 20:30:49 +0000 (21:30 +0100)
commit0f9ac0f3788ece94bba8eb804cb5983b59d1380c
tree14cc056564782aebf5ba21b2ba26a7977fa72119
parentb58c313b0417ac6d0f27a98170cbb65511c80f82
Change optimiser policy, and fix optimiser bugs

This includes a change in optimiser policy, such that optimising a
run-time error into a compile-time error is considered a bug (which
probably should have been the rule all along); the documentation was
inconsistent on this before now. This is also needed for the
testsuite to work with the optimiser.

The specific bugs: constant folding could make a mingle guaranteed
to overflow at runtime if the line was ever reached into a compile-
time error; and folding an and into an or was occasionally an
unchecked no-op, which causes the optimiser to enter an infinite
loop (it's now checked that it's not a no-op in advance).
doc/ick.txi
src/idiotism.oil