From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: [PATCH] Add cereal + sparsehash Date: Thu, 26 Nov 2015 13:53:25 +0100 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:48391) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a1w3M-00051m-W9 for guix-devel@gnu.org; Thu, 26 Nov 2015 07:53:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a1w3J-0004hz-NE for guix-devel@gnu.org; Thu, 26 Nov 2015 07:53:36 -0500 Received: from venus.bbbm.mdc-berlin.de ([141.80.25.30]:53424) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a1w3J-0004ge-AC for guix-devel@gnu.org; Thu, 26 Nov 2015 07:53:33 -0500 Received: from localhost (localhost [127.0.0.1]) by venus.bbbm.mdc-berlin.de (Postfix) with ESMTP id B5FE1380BBB for ; Thu, 26 Nov 2015 13:53:31 +0100 (CET) Received: from venus.bbbm.mdc-berlin.de ([127.0.0.1]) by localhost (venus.bbbm.mdc-berlin.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ksXvcJ0zmy7e for ; Thu, 26 Nov 2015 13:53:25 +0100 (CET) Received: from HTCAONE.mdc-berlin.net (mab.citx.mdc-berlin.de [141.80.36.102]) by venus.bbbm.mdc-berlin.de (Postfix) with ESMTP for ; Thu, 26 Nov 2015 13:53:25 +0100 (CET) List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel --=-=-= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hi Guix, I really thought I had sent these patches to the mailing list before, but it seems that I actually haven=E2=80=99t. The first patch adds a new =E2=80=9Cserialization=E2=80=9D module for lib= raries such as cereal. The second patch adds =E2=80=9Csparsehash=E2=80=9D to the =E2=80=9Ccrypto= =E2=80=9D module. It=E2=80=99s probably not the best module for this package =E2=80=94 can you suggest a= ny other location for a hash table library? ~~ Ricardo --=-=-= Content-Type: text/x-patch; charset="utf-8" Content-Disposition: inline; filename="0001-gnu-Add-cereal.patch" Content-Transfer-Encoding: quoted-printable >From 19a28042f3839ea23aa13f4973172ca46cfde5f0 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 9 Nov 2015 14:46:56 +0100 Subject: [PATCH 1/2] gnu: Add cereal. * gnu/packages/serialization.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/serialization.scm | 72 ++++++++++++++++++++++++++++++++++++= ++++++ 2 files changed, 73 insertions(+) create mode 100644 gnu/packages/serialization.scm diff --git a/gnu-system.am b/gnu-system.am index ada903e..c4aac12 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -287,6 +287,7 @@ GNU_SYSTEM_MODULES =3D \ gnu/packages/scribus.scm \ gnu/packages/sdl.scm \ gnu/packages/search.scm \ + gnu/packages/serialization.scm \ gnu/packages/serveez.scm \ gnu/packages/shishi.scm \ gnu/packages/skarnet.scm \ diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.= scm new file mode 100644 index 0000000..e7198aa --- /dev/null +++ b/gnu/packages/serialization.scm @@ -0,0 +1,72 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =C2=A9 2015 Ricardo Wurmus +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (a= t +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages serialization) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system cmake) + #:use-module (gnu packages) + #:use-module (gnu packages doxygen)) + +(define-public cereal + (package + (name "cereal") + (version "1.1.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/USCiLab/cereal/arc= hive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "13bvsfzvm7yyp97k20iznq2j14dj3qiczvpq7g8897njw46psq25"))= )) + (build-system cmake-build-system) + (arguments + `(;; The only included tests are portability tests requiring + ;; cross-compilation and boost. Since we are building cereal on = more + ;; platforms anyway, there is no compelling reason to build the t= ests. + #:tests? #f + #:out-of-source? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda _ + (substitute* "doc/doxygen.in" + (("@CMAKE_CURRENT_SOURCE_DIR@") ".")) + (zero? (system* "doxygen" "doc/doxygen.in")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/cereal/docs")) + (include (string-append out "/include/cereal"))) + (mkdir-p doc) + (mkdir-p include) + (copy-recursively "include/cereal" include) + (copy-recursively "doc/html" doc)) + #t))))) + (native-inputs + `(("doxygen" ,doxygen))) + (home-page "http://uscilab.github.io/cereal/") + (synopsis "C++11 library for serialization") + (description + "Cereal is a header-only C++11 serialization library. Cereal takes +arbitrary data types and reversibly turns them into different representa= tions, +such as compact binary encodings, XML, or JSON.") + (license license:bsd-3))) --=20 2.1.0 --=-=-= Content-Type: text/x-patch; charset="utf-8" Content-Disposition: inline; filename="0002-gnu-Add-sparsehash.patch" Content-Transfer-Encoding: quoted-printable >From 1f8739407dd3f9715005d55befabf894fa98ee10 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 10 Nov 2015 15:41:04 +0100 Subject: [PATCH 2/2] gnu: Add sparsehash. * gnu/packages/crypto.scm (sparsehash): New variable. --- gnu/packages/crypto.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index d3dbd28..08af95f 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2014 David Thompson +;;; Copyright =C2=A9 2015 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -42,3 +43,28 @@ communication, encryption, decryption, signatures, etc.") (license isc) (home-page "http://libsodium.org"))) + +(define-public sparsehash + (package + (name "sparsehash") + (version "2.0.3") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/sparsehash/sparseh= ash/" + "archive/sparsehash-" version ".tar.gz= ")) + (sha256 + (base32 + "133szz0ldwch0kd91l0sa57qsnl020njn622szd9cxrjqyjqds85"))= )) + (build-system gnu-build-system) + (synopsis "Memory-efficient hashtable implementations") + (description + "This library contains several hash-map implementations, similar in= API +to SGI's @code{hash_map} class, but with different performance +characteristics. @code{sparse_hash_map} uses very little space overhead= , 1-2 +bits per entry. @code{dense_hash_map} is very fast, particulary on look= up. +@code{sparse_hash_set} and @code{dense_hash_set} are the set versions of= these +routines. All these implementation use a hashtable with internal quadra= tic +probing. This method is space-efficient -- there is no pointer overhead= -- +and time-efficient for good hash functions.") + (home-page "https://github.com/sparsehash/sparsehash") + (license bsd-3))) --=20 2.1.0 --=-=-=--