ROTATE-BYTE on other platforms are welcome.
* the algorithm includes an addition modulo 2^32. This is
- implemented here by (ab)using SB-EXT:TRULY-THE, to convince the
- compiler to emit the low-level addition instruction. This has the
- desired consequences on 32-bit hardware, but may not work as one
- might expect on 64-bit hardware, even if the overlying lisp is
- 32-bit.
+ implemented here for SBCL by compiler transforms on the high-level
+ description of this modular arithmetic, so although the code looks
+ like a naive implementation it actually compiles to the obvious
+ machine code. The abuse of EXT:TRULY-THE was not robust and
+ turned out not to work on platforms where the underlying hardware
+ was 64-bit.
* the "high-level" entry points to the md5 algorithm are
MD5SUM-FILE, MD5SUM-STREAM and MD5SUM-SEQUENCE (despite its name,