./devel/robin-map, C++ implementation of a fast hash map and hash set

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.3.0, Package name: robin-map-1.3.0, Maintainer: pkgsrc-users

The robin-map library is a C++ implementation of a fast hash map and hash
set using open-addressing and linear robin hood hashing with backward shift
deletion to resolve collisions.


Master sites:

Filesize: 68.908 KB

Version history: (Expand)


CVS history: (Expand)


   2024-08-04 09:18:56 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
robin-map: updated to 1.3.0

v1.3.0

Add erase_fast(iterator pos) method which in contrast to erase(iterator pos) \ 
doesn't return an iterator, avoiding the cost of looking for the next element \ 
after erasure of the element at iterator pos.

v1.2.2

Specify library version & versioning rules in headers
Mark error_message in numeric_cast as unused to avoid compiler warning in some cases
Remove support for CMake < 3.3

v1.2.1

Fix missing project version increment in CMake

v1.2.0

This release fixes a rare but critical bug which only occurs when a very long \ 
collision chain (> 32 767) occurs due to a poor hash function, see first \ 
bullet point. Upgrade is recommended.

Keep rehashing if dist_from_ideal_bucket is > DIST_FROM_IDEAL_BUCKET_LIMIT \ 
during insertion
During insertion a check was done on dist_from_ideal_bucket to be sure it \ 
doesn't becomes bigger than DIST_FROM_IDEAL_BUCKET_LIMIT but this was only done \ 
during the robin swap. A check should also be done beforehand if we find an \ 
empty bucket otherwise the variable could overflow and lead to bugs. This commit \ 
adds this check.
The bug should only manifest itself if the collision chain becomes larger than \ 
32 767 due to a very poor hash function.
Disable CMake install rule if robin_map is used as subproject
Replace deprecated std::aligned_storage since C++23 by alignas
Raise DIST_FROM_IDEAL_BUCKET_LIMIT to 8192
Clear and shrink the moved hash table in the move operator to be coherent with \ 
the move constructor
When using C++17, std::launder the reinterpreted pointer from \ 
std::aligned_storage to adapt to the change of object model introduced in \ 
P0137R1. Fix potential but very unlikely undefined behaviour.
C++17 introduced a change in the object model with P0137R1 which now requires \ 
the reinterpreted pointer from std::aligned_storage to be laundered. See the \ 
following discussion for some details \ 
https://stackoverflow.com/questions/47735657/does-reinterpret-casting-stdaligned-storage-to-t-without-stdlaunder-violat
When exceptions are disabled, only print the error message when \ 
defined(TSL_DEBUG) instead of !defined(NDEBUG)
Check that bucket_count doesn't exceed max_bucket_count() after the constructor \ 
initialization
max_bucket_count() method relies on m_buckets_data which needs to be properly \ 
initialized first
   2021-10-26 12:20:11 by Nia Alarie | Files touched by this commit (3016)
Log message:
archivers: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

Could not be committed due to merge conflict:
devel/py-traitlets/distinfo

The following distfiles were unfetchable (note: some may be only fetched
conditionally):

./devel/pvs/distinfo pvs-3.2-solaris.tgz
./devel/eclipse/distinfo eclipse-sourceBuild-srcIncluded-3.0.1.zip
   2021-10-07 15:44:44 by Nia Alarie | Files touched by this commit (3017)
Log message:
devel: Remove SHA1 hashes for distfiles
   2021-01-18 13:01:11 by Nia Alarie | Files touched by this commit (5)
Log message:
add devel/robin-map

The robin-map library is a C++ implementation of a fast hash map and hash
set using open-addressing and linear robin hood hashing with backward shift
deletion to resolve collisions.