summary refs log tree commit diff
path: root/gnu/packages/ocaml.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/ocaml.scm')
-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")