summary refs log tree commit diff
diff options
context:
space:
mode:
authorJean-Pierre De Jesus DIAZ <jean@foundation.xyz>2024-05-07 17:57:22 +0200
committerAndreas Enge <andreas@enge.fr>2024-05-15 16:26:22 +0200
commit3b9e1cdc709155da7ac5dc5a13e60ea77fa5ef68 (patch)
tree6f25b486ff103a9820ebdedc0d5d88761061a475
parent2ce67731fc5c929cc9fda2836bdaeda98d079f1c (diff)
downloadguix-3b9e1cdc709155da7ac5dc5a13e60ea77fa5ef68.tar.gz
gnu: Add ocaml-unionfind.
* gnu/packages/ocaml.scm (ocaml-unionfind): New variable.

Change-Id: Ib101e67576c000dad1d4a73d008ca0376e7da95a
Signed-off-by: Andreas Enge <andreas@enge.fr>
-rw-r--r--gnu/packages/ocaml.scm28
1 files changed, 28 insertions, 0 deletions
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 04a9ee47c3..a9842ff4fa 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -3186,6 +3186,34 @@ OCaml with fibers.")
 (define-public ocaml5.0-eio-luv
   (package-with-ocaml5.0 ocaml-eio-luv))
 
+(define-public ocaml-unionfind
+  (package
+    (name "ocaml-unionfind")
+    (version "20220122")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://gitlab.inria.fr/fpottier/unionfind")
+              (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0hdh56rbg8vfjd61q09cbmh8l5wmry5ykivg7gsm0v5ckkb3531r"))))
+    (build-system dune-build-system)
+    (arguments
+     (list ;; The test allocates an Array that is too large for OCaml when on a
+           ;; 32-bit architecture.
+           #:tests? (target-64bit?)))
+    (home-page "https://gitlab.inria.fr/fpottier/unionFind")
+    (synopsis "Union-find data structure")
+    (description "This package provides two union-find data structure
+implementations for OCaml.  Both implementations are based on disjoint sets
+forests, with path compression and linking-by-rank, so as to guarantee good
+asymptotic complexity: every operation requires a quasi-constant number of
+accesses to the store.")
+    ;; Version 2 only, with linking exception.
+    (license license:lgpl2.0)))
+
 (define-public ocaml-uring
   (package
     (name "ocaml-uring")