summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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")