Click to return to the uthash home page.
Version 1.9.8.p2
--
-
-
-
-added LRU cache example in tests/lru_cache (thanks, Oliver Lorenz!) -
-
- -
-
-fix LL_DELETE2 for VS2008 (thanks, Greg Davydouski!) -
-
-
Version 1.9.8.p1
--
-
-
-
-fix missing argument in HASH_REPLACE_STR (thanks, Alex!) -
-
- -
-
-bump version number in source files to match docs (thanks, John Crow!) -
-
- -
-
-add HASH_OVERHEAD macro to get overhead size for hash table -
-
-
Version 1.9.8 (2013-03-10)
--
-
-
-
-HASH_REPLACE now in uthash (thanks, Nick Vatamaniuc!) -
-
- -
-
-fixed clang warnings (thanks wynnw!) -
-
- -
-
-fixed utarray_insert when inserting past array end (thanks Rob Willett!) -
-
- -
-
-you can now find uthash on GitHub -
-
- -
-
-there’s a uthash Google Group -
-
- -
-
-uthash has been downloaded 29,000+ times since 2006 on SourceForge -
-
-
Version 1.9.7 (2012-10-09)
--
-
-
-
-utstring now supports substring search using utstring_find (thanks, Joe Wei!) -
-
- -
-
-utlist now supports element prepend and replace (thanks, Zoltán Lajos Kis!) -
-
- -
-
-utlist element prev/next fields can now have any names (thanks, Pawel S. Veselov!) -
-
- -
-
-uthash cast quiets a clang warning (thanks, Roman Divacky and Baptiste Daroussin!) -
-
- -
-
-uthash userguide example shows how to check key uniqueness (thanks, Richard Cook!) -
-
- -
-
-uthash HASH_MUR compiles under MSVC++ 10 in C mode (thanks, Arun Kirthi Cherian!) -
-
- -
-
-utstring_printf now supports format checking (thanks, Donald Carr!) -
-
-
Version 1.9.6 (2012-04-28)
--
-
-
-
-add utarray_prev (thanks, Ben Hiett!) -
-
- -
-
-add parens/casts for greater compatibility (thanks, Atis, Debasis Ganguly, and Steve McClellan!) -
-
- -
-
-added ifndef to uthash_malloc and related hooks (thanks, Holger Machens!) -
-
- -
-
-edit examples so they do not leak memory (thanks, 任晶磊!) -
-
-
Version 1.9.5 (2011-11-16)
--
-
-
-
-added utarray_renew -
-
- -
-
-fixed memory leak in uthash_clear when using Bloom filter (thanks, Jan Hättig!) -
-
- -
-
-utarray now copies the UT_icd on array creation rather than storing a pointer -
-
- -
-
-add parentheses to HASH_ADD to fix preprocessing of certain arguments (thanks, Aaron Rosen!) -
-
- -
-
-more parenthesizations for greater macro argument flexibility -
-
-
Version 1.9.4 (2011-06-05)
--
-
-
-
-uthash now supports MurmurHash v3 -
-
- -
-
-utlist now includes concatenation macros (LL_CONCAT and DL_CONCAT) -
-
- -
-
-utarray now supports binary search (utarray_find) -
-
- -
-
-utstring now supports a new-or-clear-existing macro (utstring_renew) -
-
- -
-
-documented technique for a multi-level hash table -
-
- -
-
-clarified scope requirements for UT_icd in the utarray documentation -
-
- -
-
-fixed termination when utstring_clear is followed by utstring_body -
-
- -
-
-fixed utarray_inserta macro when used with complex arguments -
-
- -
-
-on Visual Studio define missing type uint8_t -
-
- -
-
-Debian/Ubuntu include uthash in the package uthash-dev. -
-
- -
-
-uthash has been downloaded 16,211 times. -
-
-
Thanks to Yu Feng, Richard Cook, Dino Ciuffetti, Chris Groer, and Arun Cherian -for feedback and fixes in this release!
Version 1.9.3 (2010-10-31)
--
-
-
-
-fix an ifdef for compatibility with Intel compiler (thanks, degski!) -
-
- -
-
-fix HASH_ITER macro to satisfy C++ casting rules (thanks, Erik Bai!) -
-
-
Version 1.9.2 (2010-10-04)
--
-
-
-
-new HASH_ITER macro for more convenient deletion-safe iteration -
-
- -
-
-hashscan can now run on FreeBSD 8.1 and later (thanks, Markus Gebert!) -
-
- -
-
-More parens to evaluate complex macro arguments properly (thanks, ngg!) -
-
- -
-
-Add sz parameter to the uthash_free hook for platforms that do their own memory management. Hopefully this minor API change doesn’t cause too much breakage for people. (thanks, Niall Douglas!) -
-
- -
-
-uthash has been downloaded 12,294 times -
-
-
Version 1.9.1 (2010-05-15)
--
-
-
-
-Fix a redefinition warning when using uthash.h and utstring.h together -
-
- -
-
-Fix a bug in utstring_init -
-
- -
-
-Added HASH_FIND_PTR and HASH_ADD_PTR (thanks, Niall Douglas!) -
-
-
Version 1.9 (2010-03-31)
--
-
-
-
-uthash now supports Visual Studio 2008 and 2010 in C or C++ code! -
-
- -
-
-new headers utarray.h and utstring.h - are now included. These implement dynamic arrays and strings using macros -
-
- -
-
-utlist.h now has deletion-safe iterators and search macros -
-
- -
-
-the test suite now runs under Visual Studio (thanks again degski!) -
-
- -
-
-special thanks for suggesting utarray and utlist features to Charalampos P.! -
-
- -
-
-uthash has been downloaded 9,616 times -
-
-
Version 1.8 (2009-09-08)
--
-
-
-
-Added the hashscan utility that can report on the size and quality of - hash tables in a running process (Linux-only) -
-
- -
-
-Added Bloom filter support. This has the potential to speed up certain - types of programs that look up non-existant keys in sufficient numbers. -
-
- -
-
-Restored the MurmurHash, which can once again be used, if an additional - symbol is defined. This is a "safety" by which the user declares they - understand that -fno-strict-aliasing flag must be used if they are - using MurmurHash under gcc with optimization. -
-
- -
-
-Unified the bucket/table malloc hooks; now there is only one malloc hook -
-
- -
-
-Re-organized the manual into a main section and advanced topics section -
-
- -
-
-Fixed a bug in utlist.h where sorting a singly-linked list threw a - compile-time error. -
-
- -
-
-Fixed a bug in utlist.h where a doubly-linked list that is sorted - did not maintain the special head->prev pointer back to the list tail. -
-
-
Version 1.7 (2009-06-11)
--
-
-
-
-The MurmurHash has been removed, and Jenkin’s hash is once again the default. - While MurmurHash performed well, it’s unsafe with regard to the strict - aliasing rule. This results in incorrect code when compiled with optimization. - It’s not possible to enable -fno-strict-aliasing from within a header file. -
-
- -
-
-The linked list macros in utlist.h now comply with the strict-aliasing - rule so they generate correct code under high optimization levels (O2 or O3). - The use of the __typeof__ extension, which was originally a GNU extension, - may reduce portability to other compilers that do not support this extension. - This extension is used in the singly-linked list macros and the sort macros. -
-
-
Version 1.6 (2009-05-08)
-Special thanks to Alfred Heisner for contributing several enhancements:
-
-
-
-
-Support for two new hash functions: -
---
-
-
-
-the Paul Hsieh hash function (HASH_SFH) -
-
- -
-
-Austin Appleby’s MurmurHash function (HASH_MUR) -
-
-
- -
-
-
-
-Because of its excellent performance, MurmurHash is now the default hash function. -
-
- -
-
-keystats now has much better elapsed time accuracy under Cygwin and MinGW -
-
- -
-
-fixed casting in HASH_FNV, HASH_SAX and HASH_OAT for non-char keys -
-
-
This release also includes:
-
-
-
-
-a new HASH_CLEAR operation clears a hash table in one step. -
-
- -
-
-a new HASH_SELECT operation inserts those elements from one hash that - satisfy a given condition into another hash. The selected items have - dual presence in both hash tables. For example a game could select the - visible polygons from a hash of all polygons. -
-
- -
-
-fixed a compile-time error which occurred if the final argument to - HASH_ADD_KEYPTR was a pointer to an array member like &a[i] -
-
- -
-
-added another test script tests/all_funcs which executes the test suite - using every supported hash function -
-
-
And lastly,
-
-
-
-
-a new, separate header called utlist.h is included which - provides linked list macros for C structures, similar in style to the - uthash macros -
-
-
Version 1.5 (2009-02-19)
--
-
-
-
-now thread-safe for concurrent readers -
-
- -
-
-use scratch variables on stack rather than in table (thanks, Petter Arvidsson!). - This change made HASH_FIND about 13% faster and enabled reader concurrency. -
-
- -
-
-made BSD license terms even more permissive -
-
- -
-
-added PDF version of User Guide -
-
- -
-
-added update news - - -
-
-
Version 1.4 (2008-09-23)
--
-
-
-
-Add HASH_COUNT for counting items in the hash -
-
- -
-
-Compatibility with C++. Satisfy additional casting requirements. - Also in the tests/ directory, running make cplusplus now compiles - all the test programs with the C++ compiler. -
-
- -
-
-Eliminate elmt pointer from the UT_hash_handle. Calculate elmt - from hash handle address by subtracting hho (hash handle offset). -
-
- -
-
-Contributed by L.S.Chin: - Cast void* to char* before pointer arithmetic to suppress compiler - warnings. We assume compilers abide to C standards which impose - requirement that sizeof(void*) == sizeof(char*). -
-
- -
-
-Return meaningful exit status from do_tests per Tiago Cunha, - so that package manager-based install can verify tests are successful -
-
-
Version 1.3 (2008-07-27)
--
-
-
-
-use integer-only math-- no floating point! Support FPU-less CPU’s. -
-
- -
-
-eliminate hash_q metric, which measured the fraction of items with - non-ideal chain positions. We only need to know if this fraction - is below 0.5. This is now determined using fast bitwise tests. -
-
- -
-
-when an item is added to the hash, calculate the key’s hash value - upfront and store it, instead of recomputing it as needed. This hashv - is stored in the hash handle. Potentially major speed benefit for - bucket expansion algorithm. Deleting is marginally improved too. -
-
- -
-
-fixed a minor bug in the calculation of the max ideal chain length; - line 446 in v1.2 erroneously calculated a/b*2 instead of a/(b*2). - The effect of this bug was that bucket expansion could occur more - readily because the per-bucket max chain length multiplier factor - (which delays bucket expansion when certain buckets are overused) - was set to a lower, expansion-favoring value than intended. -
-
- -
-
-improved source commenting and improved variable names in structures -
-
- -
-
-remove HASH_JSW. Lengthy random number array made code less readable -
-
- -
-
-add HASH_SRT(hh,hash,cmp) as a generalized HASH_SORT(hash,cmp). - It was an omission in uthash 1.2 that there was no sort macro for - hash handles with names other than hh. -
-
- -
-
-Corrected HASH_FSCK so it works with any name for the hash handle. -
-
- -
-
-behave properly in pathological HASH_DEL(a,a) case where the same - variable references the head and the deletee (advancing the head - then loses the correct reference to the deletee); fix by using - scratch area in the hash table to store deletee hash handle. -
-
- -
-
-made tests runnable on MinGW -
-
- -
-
-3000+ downloads since uthash-1.0 -
-
-
Version 1.2 (2006-11-22)
--
-
-
-
-new HASH_SORT macro -
-
- -
-
-Cygwin support -
-
- -
-
-User Guide now features a clickable Table of Contents. - (The technique for generating the TOC on the browser was contributed - back to the AsciiDoc project and incorporated into AsciiDoc v8.1.0). -
-
-
Version 1.1 (2006-06-28)
--
-
-
-
-uthash-1.1 released -
-
- -
-
-supports several built-in user-selectable hash functions -
-
- -
-
-new keystats utility quantifies performance of hash functions -
-
-
Version 1.0 (2006-06-02)
--
-
-
-
-Initial release -
-
-