The review of std.hash package
Dmitry Olshansky
dmitry.olsh at gmail.com
Wed Aug 8 10:00:05 PDT 2012
On 08-Aug-12 18:16, Christophe Travert wrote:
> "Chris Cain" , dans le message (digitalmars.D:174466), a écrit :
>> On Wednesday, 8 August 2012 at 13:38:26 UTC,
>> travert at phare.normalesup.org (Christophe Travert) wrote:
>>> I think the question is: is std.hash going to contain only
>>> message-digest algorithm, or could it also contain other hash
>>> functions?
>>> I think there is enough room in a package to have both
>>> message-digest
>>> algorithm and other kinds of hash functions.
>>
>> Even if that were the case, I'd say they should be kept separate.
>> Cryptographic hash functions serve extremely different purposes
>> from regular hash functions. There is no reason they should be
>> categorized the same.
>
> They should not be categorized the same. I don't expect a regular hash
> function to pass the isDigest predicate. But they have many
> similarities, which explains they are all called hash functions. There
> is enough room in a package to put several related concepts!
>
You still can use say crc32 as normal hash function for some binary
object. The notions are not as desperate as some designers would want
them to be.
> Here, we have a package for 4 files, with a total number of line that is
> about one third of the single std.algorithm file (which is probably too
> big, I conceed). There aren't hundreds of message-digest functions to
> add here.
I'd rather see clean by family separation, as importing one huge digest
module only to use SHA is kind of creepy. On the other hand as all of
code is templated it's not a big deal.
>
> If it where me, I would have the presently reviewed module std.hash.hash
> be called std.hash.digest, and leave room here for regular hash
> functions. In any case, I think regular hash HAVE to be in a std.hash
> module or package, because people looking for a regular hash function
> will look here first.
>
I thing concerns me: if incremental digest hashes are all in one module
what are the (would be) other modules in std.hash?
--
Dmitry Olshansky
More information about the Digitalmars-d
mailing list