diff options
author | Efraim Flashner <efraim@flashner.co.il> | 2020-09-05 21:56:34 +0300 |
---|---|---|
committer | Efraim Flashner <efraim@flashner.co.il> | 2020-09-05 22:30:04 +0300 |
commit | de3c03a47160dec355d9b19ad5ca210d90c15fd7 (patch) | |
tree | 4ca6dc05b5fc9530d812bbb269f1c61ab9efccf3 /gnu/packages/datastructures.scm | |
parent | ab6fe9d362046231ad6f46eccfd1ea2c9c80b401 (diff) | |
parent | b8477cab7bccc4191ed3dfa3f149aec7917834d8 (diff) | |
download | guix-patches-de3c03a47160dec355d9b19ad5ca210d90c15fd7.tar guix-patches-de3c03a47160dec355d9b19ad5ca210d90c15fd7.tar.gz |
Merge remote-tracking branch 'origin/master' into staging
Diffstat (limited to 'gnu/packages/datastructures.scm')
-rw-r--r-- | gnu/packages/datastructures.scm | 70 |
1 files changed, 65 insertions, 5 deletions
diff --git a/gnu/packages/datastructures.scm b/gnu/packages/datastructures.scm index b996a537cf..3203f91608 100644 --- a/gnu/packages/datastructures.scm +++ b/gnu/packages/datastructures.scm @@ -2,7 +2,8 @@ ;;; Copyright © 2015, 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com> -;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2020 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,6 +23,7 @@ (define-module (gnu packages datastructures) #:use-module (gnu packages) #:use-module (gnu packages autotools) + #:use-module (gnu packages boost) #:use-module (gnu packages perl) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) @@ -82,7 +84,7 @@ library.") (define-public sparsehash (package (name "sparsehash") - (version "2.0.3") + (version "2.0.4") (source (origin (method git-fetch) (uri (git-reference @@ -91,7 +93,7 @@ library.") (file-name (git-file-name name version)) (sha256 (base32 - "0m3f0cnpnpf6aak52wn8xbrrdw8p0yhq8csgc8nlvf9zp8c402na")))) + "1pf1cjvcjdmb9cd6gcazz64x0cd2ndpwh6ql2hqpypjv725xwxy7")))) (build-system gnu-build-system) (synopsis "Memory-efficient hashtable implementations") (description @@ -234,14 +236,34 @@ to the structure and choosing one or more fields to act as the key.") "0m542xpys54bni29zibgrfpgpd0zgyny4h131virxsanixsbz52z"))))))) (build-system cmake-build-system) (arguments - '(#:phases + `(#:phases (modify-phases %standard-phases (add-after 'install 'install-static-library (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (copy-file "lib/libsdsl_static.a" (string-append out "/lib/libsdsl.a"))) - #t))))) + #t)) + (add-after 'install 'install-pkgconfig-file + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib"))) + (mkdir-p (string-append lib "/pkgconfig")) + (with-output-to-file (string-append lib "/pkgconfig/sdsl-lite.pc") + (lambda _ + (format #t "prefix=~a~@ + exec_prefix=${prefix}~@ + libdir=${exec_prefix}/lib~@ + includedir=${prefix}/include~@ + ~@ + ~@ + Name: sdsl~@ + Version: ~a~@ + Description: SDSL: Succinct Data Structure Library~@ + Libs: -L${libdir} -lsdsl -ldivsufsort -ldivsufsort64~@ + Cflags: -I${includedir}~%" + out ,version))) + #t)))))) (native-inputs `(("libdivsufsort" ,libdivsufsort))) (home-page "https://github.com/simongog/sdsl-lite") @@ -284,3 +306,41 @@ Burrows-Wheeler transformed string from a given string over a constant-size alphabet. The algorithm runs in O(n log n) worst-case time using only 5n+O(1) bytes of memory space, where n is the length of the string.") (license license:expat))) + +(define-public robin-map + (package + (name "robin-map") + (version "0.6.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Tessil/robin-map") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1li70vwsksva9c4yly90hjafgqfixi1g6d52qq9p6r60vqc4pkjj")))) + (build-system cmake-build-system) + (native-inputs + `(("boost" ,boost))) ; needed for tests + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (mkdir "tests") + (with-directory-excursion "tests" + (invoke "cmake" "../../source/tests") + (invoke "cmake" "--build" ".") + (invoke "./tsl_robin_map_tests"))))))) + (home-page "https://github.com/Tessil/robin-map") + (synopsis "C++ implementation of a fast hash map and hash set") + (description "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. + +Four classes are provided: tsl::robin_map, tsl::robin_set, tsl::robin_pg_map +and tsl::robin_pg_set. The first two are faster and use a power of two growth +policy, the last two use a prime growth policy instead and are able to cope +better with a poor hash function.") + (license license:expat))) |