summaryrefslogtreecommitdiff
path: root/dev-cpp/parallel-hashmap
diff options
context:
space:
mode:
Diffstat (limited to 'dev-cpp/parallel-hashmap')
-rw-r--r--dev-cpp/parallel-hashmap/Manifest2
-rw-r--r--dev-cpp/parallel-hashmap/metadata.xml37
-rw-r--r--dev-cpp/parallel-hashmap/parallel-hashmap-1.33.ebuild36
-rw-r--r--dev-cpp/parallel-hashmap/parallel-hashmap-1.34.ebuild41
4 files changed, 116 insertions, 0 deletions
diff --git a/dev-cpp/parallel-hashmap/Manifest b/dev-cpp/parallel-hashmap/Manifest
new file mode 100644
index 000000000000..198c393021fe
--- /dev/null
+++ b/dev-cpp/parallel-hashmap/Manifest
@@ -0,0 +1,2 @@
+DIST parallel-hashmap-1.33.tar.gz 2038996 BLAKE2B b704a0230bd6d15e8a3a1aa11bec456183119d5104e1ac191e556edae1c0b0d2a27c5b52c84cae167cd09a90f4fc43f817c21d64d6b288a70596b6495ee872e6 SHA512 287f098229153d925632e68e3cdbabfae0ea0ab8864089e4c0553a166c6079ca82ed5246ba53afd2a2917abcf06f37bc18f098e721f5f3b8def4d2d8c1c8c745
+DIST parallel-hashmap-1.34.tar.gz 2043028 BLAKE2B 30629288656a22cfd56da9485458f604487383cc5951e230a833b182cbbcc706b78d0b8a45fb76c4fca6da930f49cdb79b2ca63926ca8cd60cc7445b58c8edbd SHA512 3747422e80406aa77b009adee3c16325640dd1044560882fb881dac5ef4109f7d165d26ed7e64002c9285275f95962725ce20c918da12c0c113999c8ca3c7429
diff --git a/dev-cpp/parallel-hashmap/metadata.xml b/dev-cpp/parallel-hashmap/metadata.xml
new file mode 100644
index 000000000000..3183d009f6a5
--- /dev/null
+++ b/dev-cpp/parallel-hashmap/metadata.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM 'http://www.gentoo.org/dtd/metadata.dtd'>
+<pkgmetadata>
+ <maintainer type="person">
+ <email>lssndrbarbieri@gmail.com</email>
+ <name>Alessandro Barbieri</name>
+ </maintainer>
+ <longdescription lang="en">
+Overview
+
+This repository aims to provide a set of excellent hash map implementations, as well as a btree alternative to std::map and std::set, with the following characteristics:
+
+Header only: nothing to build, just copy the parallel_hashmap directory to your project and you are good to go.
+
+drop-in replacement for std::unordered_map, std::unordered_set, std::map and std::set
+
+Compiler with C++11 support required, C++14 and C++17 APIs are provided (such as try_emplace)
+
+Very efficient, significantly faster than your compiler's unordered map/set or Boost's, or than sparsepp
+
+Memory friendly: low memory usage, although a little higher than sparsepp
+
+Supports heterogeneous lookup
+
+Easy to forward declare: just include phmap_fwd_decl.h in your header files to forward declare Parallel Hashmap containers [note: this does not work currently for hash maps with pointer keys]
+
+Dump/load feature: when a flat hash map stores data that is std::trivially_copyable, the table can be dumped to disk and restored as a single array, very efficiently, and without requiring any hash computation. This is typically about 10 times faster than doing element-wise serialization to disk, but it will use 10% to 60% extra disk space. See examples/serialize.cc. (flat hash map/set only)
+
+Automatic support for boost's hash_value() method for providing the hash function (see examples/hash_value.h). Also default hash support for std::pair and std::tuple.
+
+natvis visualization support in Visual Studio (hash map/set only)
+ </longdescription>
+ <upstream>
+ <bugs-to>https://github.com/greg7mdp/parallel-hashmap/issues</bugs-to>
+ <remote-id type="github">greg7mdp/parallel-hashmap</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/parallel-hashmap/parallel-hashmap-1.33.ebuild b/dev-cpp/parallel-hashmap/parallel-hashmap-1.33.ebuild
new file mode 100644
index 000000000000..e2824c2e1c3d
--- /dev/null
+++ b/dev-cpp/parallel-hashmap/parallel-hashmap-1.33.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="Family of header-only, fast and memory-friendly hashmap and btree containers"
+HOMEPAGE="
+ https://greg7mdp.github.io/parallel-hashmap/
+ https://github.com/greg7mdp/parallel-hashmap
+"
+SRC_URI="https://github.com/greg7mdp/parallel-hashmap/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="examples"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+#TODO: explore the various cmake options (if any)
+#TODO: tests
+
+src_compile() {
+ cmake_src_compile
+}
+
+src_install() {
+ cmake_src_install
+ if use examples ; then
+ dodoc -r examples
+ docompress -x "/usr/share/doc/${PF}/examples"
+ fi
+}
diff --git a/dev-cpp/parallel-hashmap/parallel-hashmap-1.34.ebuild b/dev-cpp/parallel-hashmap/parallel-hashmap-1.34.ebuild
new file mode 100644
index 000000000000..a4119b6dccaa
--- /dev/null
+++ b/dev-cpp/parallel-hashmap/parallel-hashmap-1.34.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Family of header-only, fast and memory-friendly hashmap and btree containers"
+HOMEPAGE="
+ https://greg7mdp.github.io/parallel-hashmap/
+ https://github.com/greg7mdp/parallel-hashmap
+"
+SRC_URI="https://github.com/greg7mdp/parallel-hashmap/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="examples test"
+
+CDEPEND="dev-libs/cereal"
+DEPEND="test? ( ${CDEPEND} )"
+RDEPEND="${CDEPEND}"
+
+RESTRICT="!test? ( test )"
+
+src_compile() {
+ mycmakeargs=(
+ PHMAP_BUILD_EXAMPLES=$(usex examples)
+ PHMAP_BUILD_TESTS=$(usex test)
+ )
+
+ cmake_src_compile
+}
+
+src_install() {
+ cmake_src_install
+ if use examples ; then
+ dodoc -r examples
+ docompress -x "/usr/share/doc/${PF}/examples"
+ fi
+}