From 6f4f9c4d5519979740de9d74b343414349cab79a Mon Sep 17 00:00:00 2001 From: pukkamustard Date: Tue, 1 Jun 2021 20:22:58 +0000 Subject: gnu: Add ocaml-bigstringaf. * gnu/ocaml/packages.scm (ocaml-bigstringaf): New variable. Signed-off-by: Julien Lepiller --- gnu/packages/ocaml.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index e05d8fd88f..a8d7828359 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -6591,3 +6591,37 @@ provides support to program with time varying values: declarative events and signals. React doesn't define any primitive event or signal, it lets the client chooses the concrete timeline.") (license license:lgpl2.1+))) + +(define-public ocaml-bigstringaf + (package + (name "ocaml-bigstringaf") + (version "0.7.0") + (home-page "https://github.com/inhabitedtype/bigstringaf") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1q1sqxzdnlrpl95ccrhl7lwy3zswgd9rbn19ildclh0lyi2vazbj")))) + (build-system dune-build-system) + (arguments + '(#:test-target ".")) + (propagated-inputs + `(("ocaml-bigarray-compat" ,ocaml-bigarray-compat))) + (native-inputs + `(("ocaml-alcotest" ,ocaml-alcotest) + ("pkg-config" ,pkg-config))) + (synopsis + "Bigstring intrinsics and fast blits based on memcpy/memmove") + (description + "The OCaml compiler has a bunch of intrinsics for Bigstrings, but they're +not widely-known, sometimes misused, and so programs that use Bigstrings are +slower than they have to be. And even if a library got that part right and +exposed the intrinsics properly, the compiler doesn't have any fast blits +between Bigstrings and other string-like types. @code{bigstringaf} provides +these missing pieces.") + (license license:bsd-3))) -- cgit v1.2.3