Skip to content

Commit

Permalink
imported from svn
Browse files Browse the repository at this point in the history
  • Loading branch information
SimonKagstrom committed Nov 27, 2011
0 parents commit a32a2e3
Show file tree
Hide file tree
Showing 40 changed files with 12,671 additions and 0 deletions.
3 changes: 3 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
* Simon K�gstr�m <[email protected]>. Most programming.

* Dru Lemley <[email protected]>. CRC32 hashing, bugfixes.
437 changes: 437 additions & 0 deletions COPYING

Large diffs are not rendered by default.

150 changes: 150 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
2007-07-15 Simon K�gstr�m <[email protected]> (0.6.1)
* Updated config.guess and config.sub from automake-1.7 (Mohammad
Muquit)

* Allow returning the keysize on iteration, added
ght_first_keysize and ght_next_keysize (Shehjar Tikoo)

2006-06-04 Simon K�gstr�m <[email protected]> (0.6.1)
* Iteration is now ordered by the order of insertion (Elliot
Schwartz)

* Keys have been made const (Elliot Schwartz)

* Removed unistd.h from the includes in some of the examples since
it's not valid on windows (Muhammad Muquit)


2006-04-10 Simon K�gstr�m <[email protected]> (0.6.0)
* Fixed bug in rehashing when using a custom memory allocator. The
temporary table uses malloc, and therefore the pointers to the
custom free/alloc are wrong. Thanks to Thomas Koschny for pointing
this out and providing a fix.

* Added ght_set_bounded_buckets() which is used to employ
libghthash as a cache, limiting the maximum size of the buckets
and pushing out the last entry from the bucket.

* dict_example.c has been modified to (optionally) use bounded
buckets.

* Fixed an embarrassing bug in dict_example.c (strcmp returns 0 if
the strings are equal).

* Added manpages for the most important functions

* Fixed documentation bug pointed out by Steven Ferraro

* More info in the ChangeLog

0.5.6:
* Fixed a segfault with hash tables of size zero by not allowing
them (thanks to Elliot Schwartz for pointing this out). Updated
the documentation for this as well
* Fixed alloc_example.c to allocate the correct number of bytes
for the custom allocator (and updated incorrect documentation
for this)

0.5.5:
* Fixed a bug where insertion after rehashing could trigger an
internal error (thanks to Mike Mulligan for providing the patch)
* Minor documentation fix

0.5.4:
* Added ght_replace() to replace a current entry. Faster than
ght_remove() followed by ght_insert().
* Added ght_table_size() to get the current size of the
table. Thanks to Muhammad Muquit <[email protected]> for the
suggestion.
* Added check for __cplusplus (to use extern "C" {)
* Fix for warning in configure.in
* Fixed aliasing warnings with GCC 3.3 in the example programs.
* Added an interactive example (written by Muhammad Muquit)
* Added Makefile for VC++/Windows (Muhammad Muquit).

0.5.3:
* Performance improvement release (probably 5-7% faster than last)
* Removed recursive functions
* Inlined helper functions (where possible)
* Simplified some code, datastructures
* Restructured the code a bit, removed unused stuff (printouts)

0.5.2:
* Fixed the bug causing crashes when deleting entries during
iteration. Note that removing entries during an iteration
can still cause a crash.
* Changed the prototype of ght_create to only take the number of
buckets as argument. You can set the heuristics and rehashing
with the ght_set_heuristics() and ght_set_rehash() functions.
* Added an example program that demonstrates iteration.
* Added some documentation (explanations of default values).
* Some cleanup of the example programs.
* Fixed the configure-script a bit.

0.5.1:
* Added the possibility to use a custom malloc/free for
entries. This should make the table faster where custom
allocators are applicable.
* Implemented functions to set properties of the table,
i.e. ght_set_alloc(), ght_set_heuristics() etc.
* Fixed bug that caused the move-to-front heuristics to never be
set.
* Added example program for custom allocators.
* Fixed the documentation a bit.
* General code-cleanup (i.e. whitespace cleanup etc)

0.5:
* Changed the documentation a bit.
* Rehash before we insert the new entry (at least one less entry
to reinsert).
* Added a benchmark program for different hash tables. The
benchmark is basically the dict_example.c program, with backends
for different hash tables (currently GNU libc hsearch and the
C++ STL hash_map, feel free to add more).
* Heuristics are only applied on ght_get() now (since they
are unessessary for ght_remove() and ght_insert()).
* No longer calculates the hash value twice for inserting.
* Removed callocs (replaced with malloc+memset).
* Changed build system to use GNU automake / autoconf (should now
hopefully behave more as a normal library).
* Added an example program that collects the words from a text
file, enters those into a hash table and then reads another text
file and looks up the words in that in the table. (dict_example.c)
* Implemented the possibility to do several iterations at once and
therefore changed ght_first() and ght_next().

0.4-MK2
* Changed the license to GNU LGPL.
* Fixed bug when rehashing (the size mask was unchanged).
* Changed the programming interface quite a bit. See the
documentation for more about how to use the hash table.
* Stores key data within the table (i.e. you should no longer
pass allocated key data to the table).
* Added CRC32 hash from comp.compression.FAQ, thanks to
Dru Lemley <[email protected]> for this
* Removed shameful performance bug in one-at-a-time hash and
rotating hash, found by Dru Lemley <[email protected]>.
This makes use of the table about 2 twice as fast as before...

0.3

* Added real documentation, built with doxygen.
* Performance enhancements by using powers of two for table size,
allowing divisions to be replaced with binary ANDs.
* Freeing an entry frees the associated key as well,
even if b_delete_data is FALSE.
* The keys are hopefully free'd correctly now.
* Replaced runtime checks for NULL with asserts (the program
will not work correctly anyhow if you supply the NULLs!)
* Added simple.c example program.


0.2

* Do not export local functions
* Added option to manually specify rehashing


0.1

Initial release
Loading

0 comments on commit a32a2e3

Please sign in to comment.