Subject: [bug#63609] [PATCH 1/4] gnu: Add ocaml-parmap.

From: Jean-Pierre De Jesus DIAZ <[email-masked]>
Date: Sun, 21 May 2023 13:34:14 +0200

* gnu/packages/ocaml.scm (ocaml-parmap): New variable.

Signed-off-by: Jean-Pierre De Jesus DIAZ <[email-masked]>
---
 gnu/packages/ocaml.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index f0b8f9e912..08036ba401 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -28,6 +28,7 @@
 ;;; Copyright © 2022 John Kehayias <[email-masked]>
 ;;; Copyright © 2022 Garek Dyszel <[email-masked]>
 ;;; Copyright © 2023 Csepp <[email-masked]>
+;;; Copyright © 2023 Foundation Devices, Inc. <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2698,6 +2699,42 @@ (define-public ocaml-ppx-tools
 syntactic tools.")
     (license license:expat)))
 
+(define-public ocaml-parmap
+  (package
+    (name "ocaml-parmap")
+    (version "1.2.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rdicosmo/parmap")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0x5gnfap9f7kmgh8j725vxlbkvlplwzbpn8jdx2ywfa3dd6bn6xl"))))
+    (build-system dune-build-system)
+    (propagated-inputs
+     (list ocaml-odoc))
+    (home-page "https://github.com/rdicosmo/parmap")
+    (synopsis "Parallel map and fold primtives for OCaml")
+    (description
+     "Library to perform parallel fold or map taking advantage of multiple
+core architectures for OCaml programs.  Drop-in replacement for these
+@code{List} operations are provided:
+
+@itemize
+@item @code{List.map} -> @code{parmap}
+@item @code{List.map} -> @code{parfold}
+@item @code{List.mapfold} -> @code{parmapfold}
+@end itemize
+
+Also it allows specifying the number of cores to use with the optional
+parameter @code{ncores}.")
+    (license (list license:lgpl2.0
+                   (license:fsdg-compatible "file://LICENSE"
+                                            "See LICENSE file for details")))))
+
 (define-public ocaml-react
   (package
     (name "ocaml-react")
-- 
2.34.1