summaryrefslogtreecommitdiff
path: root/gnu/packages/cpp.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/cpp.scm')
-rw-r--r--gnu/packages/cpp.scm143
1 files changed, 85 insertions, 58 deletions
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index f65506dcec..3b65ce9f4a 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -8,7 +8,7 @@
;;; Copyright © 2019 Jan Wielkiewicz <[email protected]>
;;; Copyright © 2020, 2021 Nicolò Balzarotti <[email protected]>
;;; Copyright © 2020 Roel Janssen <[email protected]>
-;;; Copyright © 2020, 2021, 2023 Ricardo Wurmus <[email protected]>
+;;; Copyright © 2020, 2021, 2023, 2024 Ricardo Wurmus <[email protected]>
;;; Copyright © 2020 Brice Waegeneire <[email protected]>
;;; Copyright © 2020, 2021, 2022 Vinicius Monego <[email protected]>
;;; Copyright © 2020, 2022 Marius Bakke <[email protected]>
@@ -25,11 +25,11 @@
;;; Copyright © 2021 jgart <[email protected]>
;;; Copyright © 2021 Julien Lepiller <[email protected]>
;;; Copyright © 2021 Disseminate Dissent <[email protected]>
-;;; Copyright © 2022, 2023 Efraim Flashner <[email protected]>
+;;; Copyright © 2022-2024 Efraim Flashner <[email protected]>
;;; Copyright © 2022 muradm <[email protected]>
;;; Copyright © 2022 Attila Lendvai <[email protected]>
;;; Copyright © 2022 Arun Isaac <[email protected]>
-;;; Copyright © 2022, 2023 David Elsing <[email protected]>
+;;; Copyright © 2022, 2023, 2024 David Elsing <[email protected]>
;;; Copyright © 2022, 2023 Zheng Junjie <[email protected]>
;;; Copyright © 2022, 2023, 2024 Maxim Cournoyer <[email protected]>
;;; Copyright © 2022 Antero Mejr <[email protected]>
@@ -187,45 +187,39 @@ development effort.")
(define-public range-v3
(package
(name "range-v3")
- (version "0.11.0")
+ (version "0.12.0")
(source
(origin
(method git-fetch)
- (uri
- (git-reference
- (url "https://github.com/ericniebler/range-v3.git")
- (commit version)))
- (file-name
- (git-file-name name version))
- (patches (search-patches "range-v3-build-with-gcc10.patch"))
+ (uri (git-reference
+ (url "https://github.com/ericniebler/range-v3.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "18230bg4rq9pmm5f8f65j444jpq56rld4fhmpham8q3vr1c1bdjh"))))
+ (base32 "0r85s5rmp5ixmik2y5y4w760pa38j1sg9hbr1fss2flibzvrf53d"))))
(build-system cmake-build-system)
(arguments
(list
- #:configure-flags
- #~(list "-DRANGES_NATIVE=OFF")))
- (native-inputs
- (list doxygen gcc-9 perl))
- (inputs
- (list boost))
+ #:configure-flags #~(list "-DRANGES_NATIVE=OFF")))
+ (native-inputs (list doxygen perl))
+ (inputs (list boost))
(synopsis "Range library for C++14/17/20")
- (description "Range-v3 is an extension of the Standard Template Library that
+ (description
+ "Range-v3 is an extension of the Standard Template Library that
makes its iterators and algorithms more powerful by making them composable.
Unlike other range-like solutions which, seek to do away with iterators, in
range-v3 ranges are an abstraction layer on top of iterators.")
(home-page "https://github.com/ericniebler/range-v3/")
- (license
- (list
- ;; Elements of Programming
- (license:x11-style "file:///LICENSE.txt")
- ;; SGI STL
- license:sgifreeb2.0
-;;; LibC++ (dual-licensed)
- license:expat
- license:ncsa
- ;; Others
- license:boost1.0))))
+ (license (list
+ ;; Elements of Programming
+ (license:x11-style "file:///LICENSE.txt")
+ ;; SGI STL
+ license:sgifreeb2.0
+ ;; LibC++ (dual-licensed)
+ license:expat
+ license:ncsa
+ ;; Others
+ license:boost1.0))))
(define-public robin-hood-hashing
(package
@@ -285,16 +279,18 @@ use by the C++ Core Guidelines maintained by the Standard C++ Foundation.")
(name "c2ffi")
;; As per the c2ffi README: the first three elements are encoding the
;; required Clang/LLVM version, and the last one is the c2ffi revision.
- (version "12.0.0.0")
+ (version "16.0.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/rpav/c2ffi")
- (commit (string-append "v" version))))
+ ;; Upstream is not tagging releases consistently.
+ ;; (commit (string-append "v" version))
+ (commit "097cbe61ca02dc79ea60859aa056975131a9d985")))
(file-name (git-file-name name version))
(sha256
- (base32 "1qq8dfismd20d9kfxpfvwz07v9mfvd0y7p5r3c92mk2pm4xnmzfy"))
+ (base32 "1mqhw4838chl495gaj9z0731ahkmqb4f3wlc1qalk82fdsaniyd5"))
(modules '((guix build utils)))
(snippet
'(substitute* "CMakeLists.txt"
@@ -315,9 +311,9 @@ LLVMOption LLVMBitReader LLVMProfileData")))))
(when tests?
(invoke "./bin/c2ffi" "--help")))))))
(native-inputs
- (list clang-12)) ; CMakeLists.txt invokes `clang -print-resource-dir`
+ (list clang-16)) ; CMakeLists.txt invokes `clang -print-resource-dir`
(inputs
- (list clang-12)) ; Compiled with gcc, but links against libclang-cpp.so
+ (list clang-16)) ; Compiled with gcc, but links against libclang-cpp.so
(home-page "https://github.com/rpav/c2ffi")
(synopsis "Clang-based FFI wrapper generator")
(description
@@ -519,7 +515,17 @@ operating on batches.")
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DHWY_SYSTEM_GTEST=on"
- "-DBUILD_SHARED_LIBS=ON")))
+ "-DBUILD_SHARED_LIBS=ON")
+ ,@(if (string-prefix? "i686-linux" (or (%current-system)
+ (%current-target-system)))
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'really-skip-precision-tests
+ (lambda _
+ (substitute* "hwy/contrib/math/math_test.cc"
+ (("Skipping math_test due to GCC issue with excess precision.*" m)
+ (string-append m "return;\n")))))))
+ '())))
(native-inputs
(list googletest))
(home-page "https://github.com/google/highway")
@@ -1061,10 +1067,9 @@ and make @code{cpplint} usable in wider contexts.")
(base32 "09xnf8hmld1fk8j33zwlz1qcxnjdx1ncbg62csic9va4m1wc2v1d"))))
(build-system cmake-build-system)
(arguments
- ;; No tests.
- `(#:tests? #f
- ;; Build the shared library instead of a static one.
- #:configure-flags `("-DBUILD_SHARED_LIBS=1")))
+ (list #:tests? #f ; No tests.
+ #:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON"
+ "-DREPROC++=ON")))
(native-inputs
(list pkg-config))
(synopsis "Process IO library")
@@ -1628,7 +1633,7 @@ provides a number of utilities to make coding with expected cleaner.")
(define-public immer
(package
(name "immer")
- (version "0.8.0")
+ (version "0.8.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1636,19 +1641,12 @@ provides a number of utilities to make coding with expected cleaner.")
(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")
- (("<catch.hpp>") "<catch2/catch.hpp>")
- (("<doctest.h>") "<doctest/doctest.h>"))
- (substitute* (find-files "test/oss-fuzz" "\\.cpp")
- ;; someone used the wrong header :)
- (("<fmt/printf.h>") "<fmt/ostream.h>"))))))
+ (base32 "03qkr42h0g6rivj3kq207gzgnv7hq88y69q16l2vg1lbvjcgca2g"))))
(build-system cmake-build-system)
- (arguments (list #:test-target "check"))
+ (arguments (list #:test-target "check"
+ ;; -Werror appears to report false positives.
+ ;; See <https://github.com/arximboldi/immer/issues/223>.
+ #:configure-flags #~(list "-DDISABLE_WERROR=ON")))
(inputs (list boost libgc c-rrb))
(native-inputs (list catch2 doctest fmt pkg-config))
(home-page "https://sinusoid.es/immer")
@@ -2455,7 +2453,7 @@ CRC32C algorithm, which is specified in RFC 3720, section 12.1.")
(define-public fast-float
(package
(name "fast-float")
- (version "3.5.1")
+ (version "6.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2464,7 +2462,7 @@ CRC32C algorithm, which is specified in RFC 3720, section 12.1.")
(file-name (git-file-name name version))
(sha256
(base32
- "0z3rxxd0pwvw70dbnv63rm67biw829vdqf50y16isxm6g3sbrz8g"))))
+ "1xf4gbllha760cr0ri53zsja46dypj45lj070ijb5f78xavfd8f8"))))
(build-system cmake-build-system)
(arguments
(list
@@ -2480,9 +2478,7 @@ CRC32C algorithm, which is specified in RFC 3720, section 12.1.")
(("if\\(NOT supplemental_test_files_POPULATED.*")
(string-append
"set(supplemental_test_files_BINARY_DIR "
- (search-input-directory (or native-inputs inputs)
- "data")
- ")\nif(0)\n"))))))))
+ #$fast-float-test-files ")\nif(0)\n"))))))))
(native-inputs (list doctest fast-float-test-files))
(home-page "https://github.com/fastfloat/fast_float")
(synopsis "Floating point number parser for C++")
@@ -2708,6 +2704,37 @@ addition and subtraction for all combinations of signed and unsigned 32-bit and
64-bit integers.")
(license license:expat)))
+(define-public wide-integer
+ (let ((commit "22b8428746248e682d5276f8e8b7fb52af73ea47")
+ (revision "1314")) ; commit count
+ (package
+ (name "wide-integer")
+ (version (git-version "0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ckormanyos/wide-integer")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0bhjnbdcphv5kddddh8kpwjpjix23m12vmfsz0r6wjc5d27md33z"))
+ (modules '((guix build utils)))
+ (snippet #~(substitute* "CMakeLists.txt"
+ (("WideIntegerTargets") "wide-integer-targets")
+ (("WideIntegerConfig") "wide-integer-config")
+ (("WideInteger") "wide-integer")))))
+ (build-system cmake-build-system)
+ (native-inputs (list boost))
+ (home-page "https://github.com/ckormanyos/wide-integer")
+ (synopsis "C++ template for arbitrary-precision integers")
+ (description "This package implements a generic template for extended
+width signed and unsigned integral types. Up to 63 limbs of any built-in
+integer type are supported, and can be used to build powers of two like
+int128_t, uint256_t, but also somewhat esoteric types such as int24_t,
+uint80_t, or uint1536_t. The provided types can be used in much the same
+way as basic integer types.")
+ (license license:boost1.0))))
+
(define-public wdl
;; No tag is available.
(let ((commit "da86a62d11e46e4ecd8b16f9775cb5188340a0e2")