-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
150 lines (122 loc) · 5.66 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
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