From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id C0BFC1382C5 for ; Sun, 2 May 2021 09:27:21 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id E3571E08FB; Sun, 2 May 2021 09:27:20 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 92B4BE08F2 for ; Sun, 2 May 2021 09:27:20 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 8FD7F340D19 for ; Sun, 2 May 2021 09:27:19 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id F0C0F74F for ; Sun, 2 May 2021 09:27:16 +0000 (UTC) From: "Theo Anderson" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Theo Anderson" Message-ID: <1619920265.6acfa62b637a31df2582e1817c76fc7ce763e43b.telans@gentoo> Subject: [gentoo-commits] repo/proj/guru:master commit in: dev-cpp/parallel-hashmap/ X-VCS-Repository: repo/proj/guru X-VCS-Files: dev-cpp/parallel-hashmap/Manifest dev-cpp/parallel-hashmap/metadata.xml dev-cpp/parallel-hashmap/parallel-hashmap-1.33.ebuild X-VCS-Directories: dev-cpp/parallel-hashmap/ X-VCS-Committer: telans X-VCS-Committer-Name: Theo Anderson X-VCS-Revision: 6acfa62b637a31df2582e1817c76fc7ce763e43b X-VCS-Branch: master Date: Sun, 2 May 2021 09:27:16 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: c41d7208-7410-4353-895c-5a51863f3e18 X-Archives-Hash: f8959641b4d0ca29167e816f80a0c4fc commit: 6acfa62b637a31df2582e1817c76fc7ce763e43b Author: Alessandro Barbieri gmail com> AuthorDate: Sun May 2 01:31:46 2021 +0000 Commit: Theo Anderson posteo de> CommitDate: Sun May 2 01:51:05 2021 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=6acfa62b dev-cpp/parallel-hashmap: new package Package-Manager: Portage-3.0.18, Repoman-3.0.3 Signed-off-by: Alessandro Barbieri gmail.com> dev-cpp/parallel-hashmap/Manifest | 1 + dev-cpp/parallel-hashmap/metadata.xml | 33 ++++++++++++++++ .../parallel-hashmap/parallel-hashmap-1.33.ebuild | 45 ++++++++++++++++++++++ 3 files changed, 79 insertions(+) diff --git a/dev-cpp/parallel-hashmap/Manifest b/dev-cpp/parallel-hashmap/Manifest new file mode 100644 index 000000000..da8d78b3e --- /dev/null +++ b/dev-cpp/parallel-hashmap/Manifest @@ -0,0 +1 @@ +DIST parallel-hashmap-1.33.tar.gz 2038996 BLAKE2B b704a0230bd6d15e8a3a1aa11bec456183119d5104e1ac191e556edae1c0b0d2a27c5b52c84cae167cd09a90f4fc43f817c21d64d6b288a70596b6495ee872e6 SHA512 287f098229153d925632e68e3cdbabfae0ea0ab8864089e4c0553a166c6079ca82ed5246ba53afd2a2917abcf06f37bc18f098e721f5f3b8def4d2d8c1c8c745 diff --git a/dev-cpp/parallel-hashmap/metadata.xml b/dev-cpp/parallel-hashmap/metadata.xml new file mode 100644 index 000000000..2609bf86a --- /dev/null +++ b/dev-cpp/parallel-hashmap/metadata.xml @@ -0,0 +1,33 @@ + + + + +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) + + + https://github.com/greg7mdp/parallel-hashmap/issues + greg7mdp/parallel-hashmap + + 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 000000000..4aecefcc6 --- /dev/null +++ b/dev-cpp/parallel-hashmap/parallel-hashmap-1.33.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit cmake + +DESCRIPTION="A family of header-only, very 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}" +#BDEPEND=" +# doc? ( app-text/pandoc ) +#" + +#TODO: explore the various cmake options (if any) +#TODO: tests, doc + +src_compile() { + cmake_src_compile + + #waiting for https://github.com/greg7mdp/parallel-hashmap/issues/91 +# if use doc ; then +# cd html || die +# emake all +# fi +} + +src_install() { + cmake_src_install + if use examples ; then + dodoc -r examples + docompress -x "/usr/share/doc/${PF}/examples" + fi +}