diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 27fa9048ab..1fced95023 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -34,6 +34,7 @@ ;;; Copyright © 2022 Maxim Cournoyer ;;; Copyright © 2023 Sughosha ;;; Copyright © 2023 Artyom V. Poptsov +;;; Copyright © 2023 Liliana Marie Prikler ;;; ;;; This file is part of GNU Guix. ;;; @@ -67,6 +68,7 @@ (define-module (gnu packages cpp) #:use-module (gnu packages) #:use-module (gnu packages assembly) #:use-module (gnu packages autotools) + #:use-module (gnu packages bdw-gc) #:use-module (gnu packages benchmark) #:use-module (gnu packages boost) #:use-module (gnu packages build-tools) @@ -1397,6 +1399,38 @@ (define-public libexpected (home-page "https://tl.tartanllama.xyz/") (license license:cc0))) +(define-public immer + (package + (name "immer") + (version "0.8.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/arximboldi/immer") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11km3l5h3rgsbj8yfyzk3fnx9na55l6zs2sxpx922yvlvs2blh27")) + (modules '((guix build utils))) + (snippet #~(begin + (delete-file "tools/include/doctest.h") + (delete-file "tools/include/catch.hpp") + (substitute* (find-files "test" "\\.[cih]pp") + (("") "") + (("") "")) + (substitute* (find-files "test/oss-fuzz" "\\.cpp") + ;; someone used the wrong header :) + (("") "")))))) + (build-system cmake-build-system) + (arguments (list #:test-target "check")) + (inputs (list boost libgc c-rrb)) + (native-inputs (list catch2 doctest fmt pkg-config)) + (home-page "https://sinusoid.es/immer") + (synopsis "Immutable data structures") + (description "Immer is a library of persistent and immutable data structures +written in C++.") + (license license:boost1.0))) + (define-public atomic-queue (package (name "atomic-queue")