Files
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

43 lines
1.6 KiB
Nix

{
lib,
buildDunePackage,
fetchurl,
}:
buildDunePackage rec {
pname = "ancient";
version = "0.10.0";
minimalOCamlVersion = "4.12";
src = fetchurl {
url = "https://github.com/OCamlPro/ocaml-ancient/releases/download/${version}/ancient-${version}.tbz";
hash = "sha256-XeVUPrdg7QSV7V0Tz8Mkj5jvzKtYD9DON+tt9kkuCHM=";
};
doCheck = true;
meta = {
description = "Use data structures larger than available memory";
longDescription = ''
This module allows you to use in-memory data structures which are
larger than available memory and so are kept in swap. If you try this
in normal OCaml code, you'll find that the machine quickly descends
into thrashing as the garbage collector repeatedly iterates over
swapped memory structures. This module lets you break that
limitation. Of course the module doesn't work by magic :-) If your
program tries to access these large structures, they still need to be
swapped back in, but it is suitable for large, sparsely accessed
structures.
Secondly, this module allows you to share those structures between
processes. In this mode, the structures are backed by a disk file,
and any process that has read/write access that disk file can map that
file in and see the structures.
'';
homepage = "https://github.com/OCamlPro/ocaml-ancient";
changelog = "https://raw.githubusercontent.com/OCamlPro/ocaml-ancient/refs/tags/${version}/CHANGES.md";
license = lib.licenses.lgpl21Plus;
maintainers = with lib.maintainers; [ momeemt ];
};
}