Much as I like the PSPP hmaps, it probably makes sense for any hash table implementation in gnulib to match the existing code.
On Tue, Nov 27, 2018 at 02:02:17AM +0100, Darshit Shah wrote: > Here are the links to the sources in the GNU Wget tree: > > http://git.savannah.gnu.org/cgit/wget.git/tree/src/hash.h > http://git.savannah.gnu.org/cgit/wget.git/tree/src/hash.c > > At first sight, the implementation in PSPP looks a lot more concise. > Also, it's usage of fewer preprocessor statements makes me already like it. > > However, it does seem that this implementation is not as general or, complete > as the existing hash table implementation in gnulib. The version available in > GNU Wget does implement all the same interfaces with very similar usage > characteristics. > > One of the things I noticed missing in the implementation in GNU PSPP is the > ability to grow the size of the table based on a certain threshold of > "fullness". > > * Ben Pfaff <b...@cs.stanford.edu> [181127 00:41]: > > On Tue, Nov 27, 2018 at 12:16:16AM +0100, Darshit Shah wrote: > > > I recently tried to use the hash table implementation in gnulib which > > > resides > > > in the "hash" module. However, I quickly realised that the hash table in > > > gnulib > > > seems to be what is otherwise popularly known as a hash set, i.e., it > > > supports > > > storing and retrieving just values from the structure. > > > > > > On the other hand, a hash table is usually expected to have a key->value > > > mapping that is stored. > > > > > > Within GNU Wget, we have a fairly portable version of a hash table > > > implemented > > > which I think would be a good addition for gnulib. What do you think? > > > > > > If I get a positive response here, I could extract that code and turn it > > > into a > > > hash table module for gnulib. We should be able to reuse some part of the > > > existing code in "hash.c" for this purpose as well > > > > Can you point to the Wget hash table? > > > > I'm pretty fond of the hash table implementation we have in PSPP: > > http://git.savannah.gnu.org/cgit/pspp.git/tree/src/libpspp/hmap.h > > http://git.savannah.gnu.org/cgit/pspp.git/tree/src/libpspp/hmap.c > > > > > > -- > Thanking You, > Darshit Shah > PGP Fingerprint: 7845 120B 07CB D8D6 ECE5 FF2B 2A17 43ED A91A 35B6