Skip to content

Releases: Tessil/array-hash

v0.7.1

22 Jun 05:14
Compare
Choose a tag to compare
  • Raise the maximum possible size of the hash table when using the prime_growth_policy on a 64-bit platform.

v0.7.0

17 Feb 18:56
Compare
Choose a tag to compare
  • Rename CMake project name from tsl_array_hash to tsl-array-hash for coherence with the convention used by most package managers. The find_package(tsl-array-hash) command must now be used instead of the find_package(tsl_array_hash).
  • Check that InputIt is an iterator to enable the insert functions with iterators. This prevents some potential overload conflicts between insert functions.
  • Use std::hash<std::basic_string_view<CharT>> as default hash function instead of FNV-1a if std::string_view is detected.
  • Bug correction, set a moved hash map/set in a valid state so that it can still be used even after a move (#4).
  • Fix bug in tsl::array_set::operator==(...). Wrong find was called.
  • Bug correction. When using a CharT other than char, a compilation error will occur if some methods using std::strlen are called. Use std::char_traits<CharT>::length which is the proper way.
  • Force the max_load_factor to be at least 0.1.
  • Add support for efficient serialization (#5).
  • Fix CMake >= 3.13 warning on Policy CMP0076 and add quotes to paths.
  • Fix bug where using rehash(0) on an empty map with a bucket_count > 0 would result in an invalid m_buckets pointer leading to potential segfaults.
  • Set bucket count for default contructed map/set to 0 to avoid any allocation.
  • Fix bug in load_factor() when bucket_count was equal to 0.
  • Fix compilation error with GCC 9, the implicit copy/move constructor/operator of the iterator were not generated.

v0.6.0

03 Nov 15:10
Compare
Choose a tag to compare
  • Add installation rules in the CMake of the project.

v0.5.0

06 Aug 20:41
Compare
Choose a tag to compare

This release introduce a minor backward incompatibility by moving the headers files.

  • Move the header files from tsl to include/tsl for more coherence with other C++ libraries.
  • For CMake users, add an exported target tsl::array_hash to be used with target_link_libraries.

v0.4.0

30 Jul 19:58
Compare
Choose a tag to compare
  • On range insert in tsl::array_map, try to move the values when possible (e.g. if the iterators are std::move_iterator).
  • Fix range erase method, take care of the invalidation of the iterators on erase.
  • Put growth policies in tsl::ah namespace instead of using a suffix.
  • Put growth policies in their own header file and add tsl::ah::mod_growth_policy.

v0.3.0

16 Aug 11:39
Compare
Choose a tag to compare
  • Move header files from src directory to tsl directory.
  • Add insert_or_assign method.
  • Add methods taking a precalculated hash in parameter.
  • Bug correction in equal_range, the second iterator was always equal to the first.
  • Rename tsl::str_hash to tsl::str_hash_ah, tsl::str_equal to tsl::str_equal_ah and tsl::power_of_two_growth_policy to tsl::power_of_two_growth_policy_ah to avoid any conflict with my other libraries in the tsl namespace.

v0.2.0

07 May 10:49
Compare
Choose a tag to compare
  • Bug correction in the default FNV-1a hash function which led to poor performance
  • Use a KeyEqual template parameter instead of a Traits to have a closer interface compare to std::unordered_map

First release

24 Apr 10:31
Compare
Choose a tag to compare
v0.1.0

Update documentation.