Pfffff.
Bugs bugs bugs... some of which were nastily difficult to track down. Particular embarrassments:
- (ash (1- (ash 1 32)) -40) no longer returns 1;
- (round 1.3) no longer trashes the stack;
- (truncate 291351647815394962053040658028983955 10000000000000000000000000) now returns 29135164781, not 29135164782.
How does one find how to fix these bugs? Sometimes by observing strangenesses, and applying binary search to the system until the problem's origin is sufficiently well localized. Sometimes, though, just by thinking very hard...
It is at times like this, though, that the benefits of a test suite are very obvious — if only because some fixes can be deferred on some architectures, while remaining secure in the knowledge that the issue won't be lost.
