mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-04-06 21:20:33 +02:00
gnu: Add unordered-dense.
* gnu/packages/cpp.scm (unordered-dense): New variable. Change-Id: I2671085b480f2077030910117bae5bb1a188772d Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
committed by
Ludovic Courtès
parent
bf6f94b1ee
commit
a5a2dab852
@@ -49,6 +49,7 @@
|
||||
;;; Copyright © 2025 Romain Garbage <romain.garbage@inria.fr>
|
||||
;;; Copyright © 2024, 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2025 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2025 Philippe Swartvagher <phil.swart@gmx.fr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -4765,6 +4766,58 @@ written in C99.")
|
||||
(home-page "https://github.com/aklomp/base64")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public unordered-dense
|
||||
(package
|
||||
(name "unordered-dense")
|
||||
(version "4.8.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/martinus/unordered_dense")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "02a86p2abrjkjw6kxd2gcxhknn50mcb1shrch8fhg72n534yblr5"))))
|
||||
;; This library uses CMake as build system to distribute the package, but
|
||||
;; uses Meson to build and launch tests. Hence, the phase 'check is replaced
|
||||
;; to mimic what is defined for meson-build-system.
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(substitute* "../source/test/app/doctest.h"
|
||||
(("#include <doctest\\.h>")
|
||||
"#include <doctest/doctest.h>"))
|
||||
(setenv "FUZZ_CORPUS_BASE_DIR"
|
||||
(string-append (getcwd) "/../source/data/fuzz/"))
|
||||
(invoke "meson" "setup" "../source/")
|
||||
(invoke "ninja" "--verbose" "-j"
|
||||
(number->string (parallel-job-count)))
|
||||
(setenv "MESON_TESTTHREADS"
|
||||
(number->string (parallel-job-count)))
|
||||
(invoke "meson" "test")))))))
|
||||
(native-inputs (list meson pkg-config))
|
||||
(inputs (list doctest fmt boost))
|
||||
(home-page "https://github.com/martinus/unordered_dense")
|
||||
(synopsis "C++17 fast and densely stored hashmap and hashset library")
|
||||
(description
|
||||
"A fast & densely stored hashmap and hashset based on robin-hood backward
|
||||
shift deletion for C++17 and later.
|
||||
|
||||
The classes @code{ankerl::unordered_dense::map} and
|
||||
@code{ankerl::unordered_dense::set} are (almost) drop-in replacements of
|
||||
@code{std::unordered_map} and @code{std::unordered_set.} While they don't have
|
||||
as strong iterator / reference stability guarantees, they are typically much
|
||||
faster. Additionally, there are @code{ankerl::unordered_dense::segmented_map}
|
||||
and @code{ankerl::unordered_dense::segmented_set} with lower peak memory usage,
|
||||
and stable references (iterators are NOT stable) on insert.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public zpp-serializer
|
||||
(package
|
||||
(name "zpp-serializer")
|
||||
|
||||
Reference in New Issue
Block a user