
Thomas DuBuisson wrote:
BTW, while I'm here... I sat down and wrote my own MD5 implementation.
Huzzah! It works! :-D I had a silly bug where somewhere deep in the heart of the huge complex message padding algorithm, I forgot to add on the cumulative total to the message size count. This results in the number of bits in the *final* block being used, rather than the number of bits in the entire message. Oops!
How is the performance on this new MD5 routine?
Not good. (Surprised?) I told it to hash a 1 MB file, and there was a noticable split-second pause. I told it to hash a 400 MB file, and... well, after about 1 minute wall time and 200 MB RAM I killed the process. RAM usage seems to grow linearly with time, which is Not Good(tm). To me, this suggests that something somewhere isn't as lazy as it should be. Hmm. Well whatever, next stop is the GHC profiler to see where my resources are going. Given the above bug, it's probably something easily fixable...