Nice. As a minor thought with respect to naming conventions, as most aren't likely to bother attempting to understand the relative merits of available checksum implementations, I can't help but wonder if the naming conventions should to be ordered relative to their performance/goodness.
For example: fletcher1 (future, 64b add-w/c or 128b sums, 64b data, fast/robust)* fletcher2 (present, using 64b adds, 64b data, fast/less-robust) fletcher3 (proposed, using 64b adds, 32b data, slower/robust) fletcher4 (present, using 64b adds, 32b data, very-slow/robust) *where a future fletcher1 may possibly use either 128b sums or 64b add-with-carry implementation (coded in assembly or leverage compiler intrinsics if/when available), and thereby be as fast as the current fletcher2 and as robust as the proposed fletcher3 (fletcher8). (lastly, it seems reasonable to allow existing checksums to be checked/converted to another if later deemed more desirable.) -- This message posted from opensolaris.org