;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021 Ryan Prior <rprior@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix git-download)
- #:use-module (guix build-system gnu))
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system trivial)
+ #:use-module (guix utils)
+ #:use-module (ice-9 match))
+
+(define-public wyhash
+ (package
+ (name "wyhash")
+ (version "5")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/wangyi-fudan/wyhash")
+ (commit (string-append "wyhash_v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "03ljs5iw9zrm3bydwggjvpwrcwmsd75h3dv1j4am4hw3h22cjdjc"))))
+ (build-system trivial-build-system) ;; source-only package
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((out (string-append (assoc-ref %outputs "out")))
+ (include (string-append out "/include"))
+ (doc (string-append out "/share/doc/" ,name "-" ,version))
+ (source (assoc-ref %build-inputs "source")))
+ (with-directory-excursion source
+ (install-file "wyhash.h" include)
+ (install-file "LICENSE" doc)
+ (install-file "README.md" doc))
+ #t))))
+ (home-page "https://github.com/wangyi-fudan/wyhash")
+ (synopsis "Embeddable hash function and random number generator")
+ (description "This package provides a portable hash function and random
+number generator suitable for use in data structures. Provided by default in
+Zig, V, and Nim programming language standard libraries.")
+ (license license:unlicense)))
(define-public xxhash
(package
(name "xxhash")
- (version "0.7.3")
+ (version "0.8.0")
(source
(origin
(method git-fetch)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0bin0jch6lbzl4f8y052a7azfgq2n7iwqihzgqmcccv5vq4vcx5a"))))
+ (base32 "0hpbzdd6kfki5f61g103vp7pfczqkdj0js63avl0ss552jfb8h96"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
- (list "CC=gcc"
+ (list ,(string-append "CC=" (cc-for-target))
+ ,(match (or (%current-target-system)
+ (%current-system))
+ ;; Detect vector instruction set at run time.
+ ((or "i686-linux" "x86_64-linux") "DISPATCH=1")
+ (_ "DISPATCH=0"))
"XXH_FORCE_MEMORY_ACCESS=1" ; improved performance with GCC
(string-append "prefix=" (assoc-ref %outputs "out")))
#:phases