I've been using the convert/misc/md5 addon, but it is rather slow. Using it on a 140k string on a moderately sized box was taking between 6 and 7 seconds. And I've got a lot of strings for it to grind through (many gigabytes).
So I decided I wanted to use compiled code. And, since we don't have a J compiler (yet), I decided to use C: The first thing I did was look at the source for the md5 on an ubuntu system. That's in coreutils, and it was something of a mess. After backing off from trying to extract the useful parts of that as a shared library, I found that RFC 1321 contains a reference implementation (which looks like it was the basis for the mess I was trying to work with*). That was clean enough that I could rather easily extract it, build it, and get it to work. The result is at https://github.com/rdm/libmd5.so The J test suite (https://github.com/rdm/libmd5.so/blob/master/md5test.ijs) was also extracted from RFC 1321, except for a couple lines which define the interface to the compiled code). Note that I'm using this with j602 (the 32 bit version), because that's the only version where the sax xml parsing works. And, I've only tested it on ubuntu 14.04 lts. But if someone else needs a fast md5 implementation, perhaps it won't be too much work to get this working on whatever system you work with. FYI, -- Raul * P.S. I say "mess" because it has been loaded down with so many layers of config toolchain and abstraction that it's really hard to find where anything happens. That's fine for some contexts, but useless for others. ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
