From: Dmitriy Ivanov
Subject: [ANN] LispWorks Port of Pierre R. Mai's MD5 Using 32bit Arithmetic
Date: 
Message-ID: <d3dils$2i40$1@news.aha.ru>
Hello folks,

I am pleased to announce the LispWorks version of  Pierre's implementation
of MD5 algorithm (http://www.pmsf.de/resources/lisp/MD5.html).

My version is based on raw 32bit arithmetic introduced in LW 4.4. It
demonstrates speed increase of about two hundred times compared to the naive
port.

The code was tested on LWW 4.4.0, LWW 4.4.5 beta, and reportedly on LWL. It
is available at
    http://lisp.ystok.ru/projects.html

Notes:
1) Putting :md5-small-length onto *features* on LispWorks produces fixnum
instead of (unsigned-byte 29) and imposes size restriction 8 MB as
most-positive-fixnum = 8388607.

2) Invoking md5sum-sequence directly on Unicode string, e.g. lw:text-stirng,
is improper because the code takes char-codes and merge them via
assemble-ub32.
Rule of thumb: Always coerce text string to octets beforehand!

3) It would be nice having LW implemented internally 32-bit circular shift
(rotate) or at least logical right shift operations (in addition to the
arithmetic shift sys:int32>>).

Please enjoy.
--
Sincerely,
Dmitriy Ivanov
lisp.ystok.ru