summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorHilton Chain <hako@ultrarare.space>2022-09-26 21:32:49 +0800
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2022-09-28 20:22:38 +0200
commitc59d3d67fd1c26a19ecc27bc5ed9d15d77575525 (patch)
tree4f3db12a6fd17b3cab6488c023a1dc016f1a3515 /gnu
parentc9bd729dd1d1e68ee59c56a811a47d6bbb844cba (diff)
gnu: Add libdispatch.
* gnu/packages/c.scm (libdispatch): New variable. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/c.scm36
1 files changed, 36 insertions, 0 deletions
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index 10275970b1..84b537022d 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -55,6 +55,7 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages guile)
+ #:use-module (gnu packages llvm)
#:use-module (gnu packages lua)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages pcre)
@@ -1182,6 +1183,41 @@ performance concurrent systems developed in C99+.")
(license (list license:bsd-2 ;everything except...
license:asl2.0)))) ;src/ck_hp.c
+(define-public libdispatch
+ (package
+ (name "libdispatch")
+ (version "5.7")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/apple/swift-corelibs-libdispatch")
+ (commit (string-append "swift-" version "-RELEASE"))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0skg1azbhbg7y0ql2a5sx6lmfip8l1rajqm95zzf9xv45n4dg9nn"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ ;; Use Clang instead of GCC.
+ (add-before 'configure 'prepare-build-environment
+ (lambda _
+ (setenv "AR" "llvm-ar")
+ (setenv "NM" "llvm-nm")
+ (setenv "CC" "clang")
+ (setenv "CXX" "clang++"))))))
+ (native-inputs (list clang llvm))
+ (home-page "https://apple.github.io/swift-corelibs-libdispatch/")
+ (synopsis "Concurrent code execution on multicore hardware")
+ (description
+ "Grand Central Dispatch (GCD or libdispatch) implements a concurrency model
+wherein program tasks are divided into work items. These can be run
+sequentially or in parallel, with optional synchronization in between, and GCD
+will take care of dispatching tasks to available cores.")
+ (license license:asl2.0)))
+
(define-public utf8-h
;; The latest tag is used as there is no release.
(let ((commit "500d4ea9f4c3449e5243c088d8af8700f7189734")