uthashのホームページに戻ります。
|
注意
|
この変更履歴には、不完全または不正確な記載がある可能性があります。gitのコミット履歴を参照してください。 |
バージョン 2.4.0 (2026-06-25)
-
utarray_replaceを追加(xunicattに感謝)
-
LL_REVERSE/DL_REVERSE/CDL_REVERSEを追加(xunicattに感謝)
-
CDL_CONCATを追加(xunicattに感謝)
-
oom(v2.2.0で非推奨化)を削除し、utarray_oomに置き換え -
誰も使っていないという見込みで、HASH_DEFINE_OWN_STDINT(v2.2.0で追加)を削除
-
MCST Elbrus C Compilerで__typeofを使用(utf-4096に感謝)
バージョン 2.3.0 (2021-02-25)
-
HASH_FCNを削除。HASH_FUNCTIONとHASH_KEYCMPマクロが同様に動作するように変更
-
uthash_memcmp(v2.1.0で非推奨化)を削除し、HASH_KEYCMPに置き換え
-
-Wswitch-default警告を抑制(Olaf Bergmannに感謝)
バージョン 2.2.0 (2020-12-17)
-
C99の<stdint.h>がないプラットフォーム向けにHASH_NO_STDINTを追加
-
多数の-Wcast-qual警告を抑制(Olaf Bergmannに感謝)
-
空のハッシュで検索する場合はハッシュ計算を省略(Huansong Fuに感謝)
-
utarray.hでoomをutarray_oomに改名(Hong Xuに感謝)
-
utstring.hでoomをutstring_oomに改名(Hong Xuに感謝)
-
MurmurHash/HASH_MURを削除
バージョン 2.1.0 (2018-12-20)
-
Clangの静的解析による一部の警告を抑制
-
LL_INSERT_INORDERとLL_LOWER_BOUNDなどを追加(Jeffrey Lovitz and Mattias Erikssonに感謝)
-
<string.h>がないプラットフォーム向けにuthash_bzeroを追加
-
HASH_SELECT内のHASH_BLOOM_ADD欠落を修正(Pawel Veselovに感謝)
-
HASH_NONFATAL_OOMによってmalloc失敗から回復できるように変更(Pawel Veselovに感謝)
-
HASH_FIND_STR内でuthash_strlenを繰り返し呼び出すことを回避
-
uthash_memcmpをHASH_KEYCMPに改名し、互換性のため旧名を保持
-
utstack.hを追加
-
libutを削除
バージョン 2.0.2 (2017-03-02)
-
HASH_ADD_INORDERなどのセグメンテーション違反を修正(Yana Kireyonokに感謝)
-
utstring_len内の不要なunsignedへのキャストを削除(Michal Sestrienkaに感謝)
-
<stdlib.h>がないプラットフォーム向けにuthash_memcmpとuthash_strlenを追加(Pawel Veselovに感謝)
-
utringbufferのC++非互換性を修正
バージョン 2.0.1 (2016-07-05)
-
順序を保って挿入するマクロHASH_ADD_INORDERなどを追加(Thilo Schulzに感謝)
-
ハッシュ値を指定して挿入するマクロHASH_ADD_BYHASHVALUEなどを追加
-
キー比較時に、全体のmemcmpを行う前にハッシュ値を確認
-
utringbuffer.hを追加
バージョン 1.9.9.1 (2014-11-18)
-
utvectorを含む実験的なlibutバンドルをopt/に収録
-
Bernsteinハッシュで乗算の代わりにシフトを使用(Jimmy Zhuoに感謝)
-
utarray/utstringのssize_t型をsize_tに変更(Hong Xuに感謝)
-
>4GBの文字列に対するutstringのポインター計算を修正(Thomas Botteschに感謝)
-
FNVハッシュをFNV-1a変種に変更(dwest1975に感謝)
-
HASH_REPLACE_STRのバグを修正(Ilya Kalimanに感謝)
バージョン 1.9.9 (2014-02-25)
-
HASH_ADD_STRをchar*またはchar[]に対応させるように変更(Samuel Thibaultに感謝)
-
ssize_t用のsys/types.hのインクルードを修正(Fernando Camposに感謝)
-
LL_COUNT/DL_COUNT/CDL_COUNTを追加(Paul Praetに感謝)
-
tests/lru_cacheにLRUキャッシュの例を追加(Oliver Lorenzに感謝) -
VS2008向けにLL_DELETE2を修正(Greg Davydouskiに感謝)
-
HASH_REPLACE_STRの引数欠落を修正(Alexに感謝) -
ソースファイルの版番号を文書に合わせて更新(John Crowに感謝)
-
ハッシュテーブルのオーバーヘッドサイズを取得する
HASH_OVERHEADマクロを追加
バージョン 1.9.8 (2013-03-10)
-
uthashに
HASH_REPLACEを追加(Nick Vatamaniucに感謝) -
clang警告を修正(wynnwに感謝)
-
配列の末尾を越えて挿入する場合の
utarray_insertを修正(Rob Willettに感謝) -
GitHubのuthashを見つけられるようになった
-
uthashは2006年以来、SourceForgeで29,000+回ダウンロードされた
バージョン 1.9.7 (2012-10-09)
-
utstringが
utstring_findによる部分文字列検索に対応(Joe Weiに感謝) -
utlistが要素の 先頭への追加 と 置換 に対応(Zoltán Lajos Kisに感謝)
-
utlist要素のprev/nextフィールドに任意の名前を付けられるように変更(Pawel S. Veselovに感謝)
-
uthashのキャストによってclang警告を抑制(Roman Divacky and Baptiste Daroussinに感謝)
-
uthashのユーザーガイド例でキーの一意性を確認する方法を提示(Richard Cookに感謝)
-
uthashのHASH_MURをMSVC++ 10のCモードでコンパイルできるように変更(Arun Kirthi Cherianに感謝)
-
utstring_printfが書式検査に対応(Donald Carrに感謝)
バージョン 1.9.6 (2012-04-28)
-
utarray_prevを追加(Ben Hiettに感謝)
-
互換性を高めるため括弧とキャストを追加(Atis, Debasis Ganguly, and Steve McClellanに感謝)
-
uthash_mallocと関連フックにifndefを追加(Holger Machensに感謝)
-
メモリーリークが起きないように例を修正(任晶磊に感謝)
バージョン 1.9.5 (2011-11-16)
-
utarray_renewを追加 -
Bloomフィルター使用時の
uthash_clearのメモリーリークを修正(Jan Hättigに感謝) -
utarrayが配列作成時にUT_icdへのポインターを保持する代わりに、UT_icdをコピーするように変更
-
特定の引数のプリプロセスを修正するため
HASH_ADDに括弧を追加(Aaron Rosenに感謝) -
マクロ引数の柔軟性を高めるため、さらに括弧を追加
バージョン 1.9.4 (2011-06-05)
-
uthashがMurmurHash v3に対応
-
utlistに連結マクロ(
LL_CONCATとDL_CONCAT)を追加 -
utarrayが二分探索(
utarray_find)に対応 -
utstringが新規作成または既存内容を消去するマクロ(
utstring_renew)に対応 -
多段ハッシュテーブルの手法を文書化
-
utarray文書で
UT_icdのスコープ要件を明確化 -
utstring_clearの後にutstring_bodyを呼ぶ場合の終端を修正 -
複雑な引数で使う場合のutarray_insertaマクロを修正
-
Visual Studioで欠けている型
uint8_tを定義 -
Debian/Ubuntuが
uthash-devパッケージにuthashを収録 -
uthashは16,211回ダウンロードされた
このリリースへのフィードバックと修正を提供したYu Feng、Richard Cook、Dino Ciuffetti、Chris Groer、Arun Cherianに感謝します。
バージョン 1.9.3 (2010-10-31)
-
Intelコンパイラーとの互換性のため
ifdefを修正(degskiに感謝) -
C++のキャスト規則を満たすよう
HASH_ITERマクロを修正(Erik Baiに感謝)
バージョン 1.9.2 (2010-10-04)
-
削除に安全な反復処理をより便利に行える、新しい
HASH_ITERマクロを追加 -
hashscanがFreeBSD 8.1以降で動作するように変更(Markus Gebertに感謝) -
複雑なマクロ引数を正しく評価するため、さらに括弧を追加(nggに感謝)
-
独自にメモリーを管理するプラットフォーム向けに、
uthash_freeフックにszパラメーターを追加。この小さなAPI変更で大きな互換性問題が起きないことを期待(Niall Douglasに感謝) -
uthashは12,294回ダウンロードされた
バージョン 1.9.1 (2010-05-15)
-
uthash.hとutstring.hを併用した際の再定義警告を修正 -
utstring_initのバグを修正 -
HASH_FIND_PTRとHASH_ADD_PTRを追加(Niall Douglasに感謝)
バージョン 1.9 (2010-03-31)
-
uthashがVisual Studio 2008と2010のCまたはC++コードに対応
-
新しいヘッダーutarray.hとutstring.hを収録。これらはマクロで動的配列と文字列を実装
-
utlist.hに削除に安全なイテレーターと検索マクロを追加
-
テストスイートがVisual Studio上で動作するように変更(degskiに感謝)
-
utarrayとutlistの機能を提案したCharalampos P.に特別な感謝
-
uthashは9,616回ダウンロードされた
バージョン 1.8 (2009-09-08)
-
実行中のプロセス内のハッシュテーブルのサイズと品質を報告できる
hashscanユーティリティーを追加(Linuxのみ) -
Bloomフィルターに対応。存在しないキーを十分な回数検索する特定の種類のプログラムで、高速化できる可能性がある
-
MurmurHashを復活させ、追加のシンボルを定義すれば再び使えるように変更。これは、最適化を有効にしたgccでMurmurHashを使う場合は
-fno-strict-aliasingフラグが必須であると理解していることを、利用者が表明するための「安全策」 -
バケットとテーブルのmallocフックを統合し、mallocフックを1つに変更
-
マニュアルを主な説明の節と高度なトピックの節に再編
-
単方向連結リストのソート時にコンパイルエラーが生じる
utlist.hのバグを修正 -
utlist.hで、ソート済み双方向連結リストが末尾を指す特別なhead->prevポインターを維持しないバグを修正
バージョン 1.7 (2009-06-11)
-
MurmurHashを削除し、Jenkinのハッシュを再び既定に変更。MurmurHashは高性能だったが、厳密エイリアシング規則の面で安全ではなく、最適化してコンパイルすると誤ったコードを生成する。ヘッダーファイル内から
-fno-strict-aliasingを有効にすることはできない -
utlist.hの連結リストマクロを厳密エイリアシング規則に準拠させ、高い最適化レベル(O2またはO3)でも正しいコードを生成するように変更。もともとGNU拡張だった__typeof__拡張の使用は、この拡張をサポートしない他のコンパイラーへの移植性を下げる可能性がある。この拡張は単方向連結リストマクロとソートマクロで使用
バージョン 1.6 (2009-05-08)
複数の改善を寄稿したAlfred Heisnerに特別な感謝を捧げます。
-
2つの新しいハッシュ関数に対応
-
Paul Hsiehのハッシュ関数(
HASH_SFH) -
Austin ApplebyのMurmurHash関数(
HASH_MUR)
-
-
高い性能のため、MurmurHashを既定のハッシュ関数に変更
-
keystatsのCygwinとMinGWでの経過時間の精度を大幅に改善 -
char以外のキーに対する
HASH_FNV、HASH_SAX、HASH_OATのキャストを修正
このリリースには、次の変更も含まれます。
-
新しい
HASH_CLEAR操作でハッシュテーブルを1操作で消去 -
新しい
HASH_SELECT操作で、指定条件を満たす要素をあるハッシュから別のハッシュへ挿入。選択した要素は両方のハッシュテーブルに存在する。たとえばゲームでは、全ポリゴンのハッシュから表示対象のポリゴンを選択できる -
HASH_ADD_KEYPTRの最後の引数が&a[i]のような配列メンバーへのポインターの場合に生じるコンパイルエラーを修正 -
対応するすべてのハッシュ関数を使ってテストスイートを実行する、別のテストスクリプト
tests/all_funcsを追加
最後に、次の追加もあります。
- 新しい独立したヘッダーutlist.hを収録。uthashマクロと同じような書き方で、Cの構造体用の 連結リストマクロ を提供
バージョン 1.5 (2009-02-19)
バージョン 1.4 (2008-09-23)
-
ハッシュ内の要素を数える
HASH_COUNTを追加 -
C++に対応し、追加のキャスト要件を満たすように変更。
tests/ディレクトリでmake cplusplusを実行すると、すべてのテストプログラムをC++コンパイラーでコンパイルするように変更 -
UT_hash_handleから
elmtポインターを削除。ハッシュハンドルのアドレスからhho(ハッシュハンドルのオフセット)を引いてelmtを計算 -
L.S.Chinによる寄稿:コンパイラー警告を抑えるため、ポインター計算の前に
void*をchar*へキャスト。sizeof(void*) == sizeof(char*)を要求するC標準にコンパイラーが従うと仮定 -
Tiago Cunhaの提案により、do_testsが意味のある終了ステータスを返すように変更し、パッケージマネージャーによるインストールでテスト成功を確認できるようにした
バージョン 1.3 (2008-07-27)
-
浮動小数点を使わず整数演算のみを使用。FPUのないCPUに対応
-
理想的でないチェーン位置の要素の割合を測る
hash_q指標を削除。必要なのはこの割合が0.5未満かどうかだけであり、高速なビット演算による検査で判定するように変更 -
ハッシュへの要素追加時に、必要のたびに再計算する代わりにキーのハッシュ値を先に計算して保存。このhashvをハッシュハンドルに格納。バケット拡張アルゴリズムで大幅な高速化の可能性があり、削除もわずかに改善
-
最大理想チェーン長の計算の小さなバグを修正。v1.2の446行目はa/(b*2)の代わりにa/b*2を誤って計算していた。このバグにより、バケットごとの 最大チェーン長の乗数(特定のバケットが多用されるときにバケット拡張を遅らせる係数)が、意図より小さい、拡張が起きやすい値となり、バケット拡張がより容易に起きていた
-
ソースコメントと構造体内の変数名を改善
-
HASH_JSWを削除。長い乱数配列がコードを読みにくくしていた -
HASH_SRT(hh,hash,cmp)を、HASH_SORT(hash,cmp)を一般化したものとして追加。hh以外の名前のハッシュハンドル用のソートマクロがなかったのは、uthash 1.2の欠落だった -
HASH_FSCKを、ハッシュハンドルの名前にかかわらず動作するように修正 -
同じ変数が先頭と削除対象を参照する特殊な
HASH_DEL(a,a)の場合に正しく動作するように変更(先頭を進めると削除対象への正しい参照を失う)。ハッシュテーブル内の作業領域に削除対象のハッシュハンドルを保存して修正 -
MinGWでテストを実行できるように変更
-
uthash-1.0以来、3000+回ダウンロードされた
バージョン 1.2 (2006-11-22)
-
新しい
HASH_SORTマクロを追加 -
Cygwinに対応
-
ユーザーガイドにクリックできる目次を追加(ブラウザー上で目次を生成する手法をAsciiDocプロジェクトに還元し、AsciiDoc v8.1.0に組み込まれた)
バージョン 1.1 (2006-06-28)
-
uthash-1.1をリリース
-
利用者が選べる複数の組み込みハッシュ関数に対応
-
新しいkeystatsユーティリティーでハッシュ関数の性能を定量化
バージョン 1.0 (2006-06-02)
- 初回リリース