X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/cc3ac162c558a51c90b76b84b081a15e28d0baad..e2e1dea2bb46fb0e64ca77362bbe72e3f4c9612f:/gnu/packages/datastructures.scm diff --git a/gnu/packages/datastructures.scm b/gnu/packages/datastructures.scm index 0c751f4970..27fe882043 100644 --- a/gnu/packages/datastructures.scm +++ b/gnu/packages/datastructures.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016 Ricardo Wurmus -;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice +;;; Copyright © 2015, 2016, 2019 Ricardo Wurmus +;;; Copyright © 2016, 2017, 2019 Tobias Geerinckx-Rice +;;; Copyright © 2018 Meiyo Peng ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,10 +20,13 @@ (define-module (gnu packages datastructures) #:use-module (gnu packages) + #:use-module (gnu packages documentation) #:use-module (gnu packages perl) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu)) (define-public gdsl @@ -48,6 +52,29 @@ binary trees, binary search trees, red-black trees, 2D arrays, permutations and heaps.") (license license:gpl2+))) +(define-public marisa + (package + (name "marisa") + (version "0.2.5") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/s-yata/marisa-trie" + "/releases/download/v" version "/" name "-" + version ".tar.gz")) + (sha256 + (base32 "19ifrcmnbr9whaaf4ly3s9ndyiq9sjqhnfkrxbz9zsb44w2n36hf")))) + (build-system gnu-build-system) + (home-page "https://github.com/s-yata/marisa-trie") + (synopsis "Trie data structure C++ library") + (description "Matching Algorithm with Recursively Implemented +StorAge (MARISA) is a static and space-efficient trie data structure C++ +library.") + + ;; Dual-licensed, according to docs/readme.en.html (source files lack + ;; copyright/license headers.) + (license (list license:bsd-2 license:lgpl2.1+)))) + (define-public sparsehash (package (name "sparsehash") @@ -97,18 +124,18 @@ in between these sequences may be different in both content and length.") (define-public liburcu (package (name "liburcu") - (version "0.10.0") + (version "0.10.2") (source (origin (method url-fetch) (uri (string-append "https://www.lttng.org/files/urcu/" "userspace-rcu-" version ".tar.bz2")) (sha256 (base32 - "141imnd1s4bcd4wz0wk7sp3fj649kp8whp82gw49h48mlmxqmdbw")))) + "1k31faqz9plx5dwxq8g1fnczxda1is4s1x4ph0gjrq3gmy6qixmk")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) ; for tests - (home-page "http://liburcu.org/") + (home-page "https://liburcu.org/") (synopsis "User-space RCU data synchronisation library") (description "liburcu is a user-space @dfn{Read-Copy-Update} (RCU) data synchronisation library. It provides read-side access that scales linearly @@ -123,13 +150,14 @@ queues, stacks, and doubly-linked lists.") (version "2.0.2") (source (origin - (method url-fetch) - (file-name (string-append name "-" version ".tar.gz")) - (uri (string-append "https://github.com/troydhanson/uthash/archive/v" - version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/troydhanson/uthash.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1la82gdlyl7m8ahdjirigwfh7zjgkc24cvydrqcri0vsvm8iv8rl")))) + "0kslz8k6lssh7fl7ayzwlj62p0asxs3dq03357ls5ywjad238gqg")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) @@ -143,8 +171,7 @@ queues, stacks, and doubly-linked lists.") (replace 'check (lambda* (#:key make-flags #:allow-other-keys) (with-directory-excursion "tests" - (zero? (apply system* "make" - make-flags))))) + (apply invoke "make" make-flags)))) (replace 'install ;; There is no top-level Makefile to do this for us. (lambda* (#:key outputs #:allow-other-keys) @@ -171,3 +198,31 @@ arguments. Thus, they are able to work with any type of structure and key. Any C structure can be stored in a hash table by adding @code{UT_hash_handle} to the structure and choosing one or more fields to act as the key.") (license license:bsd-2))) + +(define-public sdsl-lite + (package + (name "sdsl-lite") + (version "2.1.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/simongog/sdsl-lite/" + "releases/download/v" version "/" + "sdsl-lite-" version + ".tar.gz.offline.install.gz")) + (sha256 + (base32 + "1v86ivv3mmdy802i9xkjpxb4cggj3s27wb19ja4sw1klnivjj69g")))) + (build-system cmake-build-system) + (native-inputs + `(("doxygen" ,doxygen))) + (home-page "https://github.com/simongog/sdsl-lite") + (synopsis "Succinct data structure library") + (description "The Succinct Data Structure Library (SDSL) is a powerful and +flexible C++11 library implementing succinct data structures. In total, the +library contains the highlights of 40 research publications. Succinct data +structures can represent an object (such as a bitvector or a tree) in space +close to the information-theoretic lower bound of the object while supporting +operations of the original object efficiently. The theoretical time +complexity of an operation performed on the classical data structure and the +equivalent succinct data structure are (most of the time) identical.") + (license license:gpl3+)))