1{
2 lib,
3 easy-format,
4 buildDunePackage,
5 fetchurl,
6}:
7
8buildDunePackage rec {
9 pname = "dum";
10 version = "1.0.3";
11
12 src = fetchurl {
13 url = "https://github.com/mjambon/dum/releases/download/${version}/dum-${version}.tbz";
14 hash = "sha256-ZFojUD/IoxVTDfGyh2wveFsSz4D19pKkHrNuU+LFJlE=";
15 };
16
17 postPatch = ''
18 substituteInPlace "dum.ml" \
19 --replace-fail "Lazy.lazy_is_val" "Lazy.is_val" \
20 --replace-fail "Obj.final_tag" "Obj.custom_tag"
21 '';
22
23 propagatedBuildInputs = [ easy-format ];
24
25 meta = {
26 homepage = "https://github.com/mjambon/dum";
27 description = "Inspect the runtime representation of arbitrary OCaml values";
28 longDescription = ''
29 Dum is a library for inspecting the runtime representation of
30 arbitrary OCaml values. Shared or cyclic data are detected
31 and labelled. This guarantees that printing would always
32 terminate. This makes it possible to print values such as closures,
33 objects or exceptions in depth and without risk.
34 '';
35 license = lib.licenses.lgpl21Plus;
36 maintainers = with lib.maintainers; [ alexfmpe ];
37 };
38}