head 1.4; access; symbols pkgsrc-2026Q1:1.4.0.4 pkgsrc-2026Q1-base:1.4 pkgsrc-2025Q4:1.4.0.2 pkgsrc-2025Q4-base:1.4 pkgsrc-2025Q3:1.3.0.2 pkgsrc-2025Q3-base:1.3 pkgsrc-2025Q2:1.2.0.8 pkgsrc-2025Q2-base:1.2 pkgsrc-2025Q1:1.2.0.6 pkgsrc-2025Q1-base:1.2 pkgsrc-2024Q4:1.2.0.4 pkgsrc-2024Q4-base:1.2 pkgsrc-2024Q3:1.2.0.2 pkgsrc-2024Q3-base:1.2 pkgsrc-2024Q2:1.1.0.28 pkgsrc-2024Q2-base:1.1 pkgsrc-2024Q1:1.1.0.26 pkgsrc-2024Q1-base:1.1 pkgsrc-2023Q4:1.1.0.24 pkgsrc-2023Q4-base:1.1 pkgsrc-2023Q3:1.1.0.22 pkgsrc-2023Q3-base:1.1 pkgsrc-2023Q2:1.1.0.20 pkgsrc-2023Q2-base:1.1 pkgsrc-2023Q1:1.1.0.18 pkgsrc-2023Q1-base:1.1 pkgsrc-2022Q4:1.1.0.16 pkgsrc-2022Q4-base:1.1 pkgsrc-2022Q3:1.1.0.14 pkgsrc-2022Q3-base:1.1 pkgsrc-2022Q2:1.1.0.12 pkgsrc-2022Q2-base:1.1 pkgsrc-2022Q1:1.1.0.10 pkgsrc-2022Q1-base:1.1 pkgsrc-2021Q4:1.1.0.8 pkgsrc-2021Q4-base:1.1 pkgsrc-2021Q3:1.1.0.6 pkgsrc-2021Q3-base:1.1 pkgsrc-2021Q2:1.1.0.4 pkgsrc-2021Q2-base:1.1 pkgsrc-2021Q1:1.1.0.2 pkgsrc-2021Q1-base:1.1; locks; strict; comment @# @; 1.4 date 2025.11.02.20.04.12; author adam; state Exp; branches; next 1.3; commitid ljnD3BVheXaR71hG; 1.3 date 2025.08.13.06.01.02; author wiz; state Exp; branches; next 1.2; commitid SBjuJadQYPF34x6G; 1.2 date 2024.08.04.07.18.56; author adam; state Exp; branches; next 1.1; commitid W7qYPwzBVaZSvtkF; 1.1 date 2021.01.18.12.01.10; author nia; state Exp; branches; next ; commitid sWfHExY2FlgFFcEC; desc @@ 1.4 log @robin-map: updated to 1.4.1 1.4.1 Update cmake_minimum_required to 3.10 @ text @# $NetBSD: Makefile,v 1.3 2025/08/13 06:01:02 wiz Exp $ DISTNAME= robin-map-1.4.1 CATEGORIES= devel MASTER_SITES= ${MASTER_SITE_GITHUB:=Tessil/} GITHUB_TAG= v${PKGVERSION_NOREV} MAINTAINER= pkgsrc-users@@NetBSD.org HOMEPAGE= https://github.com/Tessil/robin-map COMMENT= C++ implementation of a fast hash map and hash set LICENSE= mit USE_LANGUAGES= c c++ .include "../../devel/cmake/build.mk" .include "../../mk/bsd.pkg.mk" @ 1.3 log @robin-map: update to 1.4.0. Add a CMake TSL_ROBIN_MAP_ENABLE_INSTALL option to explicitly enable/disable the install target Move to C++17 dropping C++11 support Bump cmake_minimum_required version to 3.5 Fix load threshold on deserialization The current version computes load using max_load_factor() without first setting m_bucket_count (default 0) leading to threshold 0, which triggers rehash (and size increase) on first insert. Recompute the threshold after setting correct bucket count to avoid this. Use inline constexpr for PRIMES and MOD_PRIME arrays @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.2 2024/08/04 07:18:56 adam Exp $ d3 1 a3 1 DISTNAME= robin-map-1.4.0 @ 1.2 log @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 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.1 2021/01/18 12:01:10 nia Exp $ d3 1 a3 1 DISTNAME= robin-map-1.3.0 @ 1.1 log @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. @ text @d1 1 a1 1 # $NetBSD$ d3 1 a3 1 DISTNAME= robin-map-0.6.3 a12 1 USE_CMAKE= yes d15 1 @