diff options
Diffstat (limited to 'pkgs/development/ocaml-modules')
13 files changed, 1189 insertions, 25 deletions
diff --git a/pkgs/development/ocaml-modules/bap/default.nix b/pkgs/development/ocaml-modules/bap/default.nix index 4f87715a74ad9..eaaf621900ad2 100644 --- a/pkgs/development/ocaml-modules/bap/default.nix +++ b/pkgs/development/ocaml-modules/bap/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub, fetchurl +{ lib, stdenv, fetchFromGitHub, fetchurl, fetchpatch , ocaml, findlib, ocamlbuild, ocaml_oasis , bitstring, camlzip, cmdliner, core_kernel, ezjsonm, fileutils, ocaml_lwt, ocamlgraph, ocurl, re, uri, zarith, piqi, piqi-ocaml, uuidm, llvm, frontc, ounit, ppx_jane, parsexp , utop, libxml2, ncurses @@ -64,7 +64,13 @@ stdenv.mkDerivation rec { disableIda = "--disable-ida"; disableGhidra = "--disable-ghidra"; - patches = [ ./curses_is_ncurses.patch ]; + patches = [ + ./curses_is_ncurses.patch + (fetchpatch { + url = "https://github.com/BinaryAnalysisPlatform/bap/commit/8b1bba30ebb551256a5b15122e70d07f40184039.patch"; + sha256 = "0il0ik5f6nyqyrlln3n43mz1zpqq34lfnhmp10wdsah4ck2dy75h"; + }) + ]; preConfigure = '' substituteInPlace oasis/elf-loader --replace bitstring.ppx ppx_bitstring diff --git a/pkgs/development/ocaml-modules/biocaml/default.nix b/pkgs/development/ocaml-modules/biocaml/default.nix index 596ed6161d7b3..b82ec7361791f 100644 --- a/pkgs/development/ocaml-modules/biocaml/default.nix +++ b/pkgs/development/ocaml-modules/biocaml/default.nix @@ -4,7 +4,7 @@ buildDunePackage rec { pname = "biocaml"; - version = "0.11.1"; + version = "0.11.2"; useDune2 = true; @@ -14,7 +14,12 @@ buildDunePackage rec { owner = "biocaml"; repo = pname; rev = "v${version}"; - sha256 = "1il84vvypgkhdyc2j5fmgh14a58069s6ijbd5dvyl2i7jdxaazji"; + sha256 = "01yw12yixs45ya1scpb9jy2f7dw1mbj7741xib2xpq3kkc1hc21s"; + }; + + patches = fetchpatch { + url = "https://github.com/biocaml/biocaml/commit/3ef74d0eb4bb48d2fb7dd8b66fb3ad8fe0aa4d78.patch"; + sha256 = "0rcvf8gwq7sz15mghl9ing722rl2zpnqif9dfxrnpdxiv0rl0731"; }; buildInputs = [ ppx_jane ppx_sexp_conv ]; diff --git a/pkgs/development/ocaml-modules/bistro/default.nix b/pkgs/development/ocaml-modules/bistro/default.nix index 348d1bb97d471..43cbd33f738ca 100644 --- a/pkgs/development/ocaml-modules/bistro/default.nix +++ b/pkgs/development/ocaml-modules/bistro/default.nix @@ -1,10 +1,13 @@ { lib , ocaml +, fetchpatch , fetchFromGitHub , buildDunePackage , base64 , bos , core +, core_kernel +, core_unix , lwt_react , ocamlgraph , ppx_sexp_conv @@ -15,21 +18,23 @@ buildDunePackage rec { pname = "bistro"; - version = "unstable-2021-11-13"; + version = "unstable-2022-05-07"; useDune2 = true; src = fetchFromGitHub { owner = "pveber"; repo = pname; - rev = "fb285b2c6d8adccda3c71e2293bceb01febd6624"; - sha256 = "sha256-JChDU1WH8W9Czkppx9SHiVIu9/7QFWJy2A89oksp0Ek="; + rev = "d363bd2d8257babbcb6db15bd83fd6465df7c268"; + sha256 = "0g11324j1s2631zzf7zxc8s0nqd4fwvcni0kbvfpfxg96gy2wwfm"; }; propagatedBuildInputs = [ base64 bos core + core_kernel + core_unix lwt_react ocamlgraph ppx_sexp_conv diff --git a/pkgs/development/ocaml-modules/cohttp/async.nix b/pkgs/development/ocaml-modules/cohttp/async.nix index 060d2c6fb6a86..50c008bf60d87 100644 --- a/pkgs/development/ocaml-modules/cohttp/async.nix +++ b/pkgs/development/ocaml-modules/cohttp/async.nix @@ -1,4 +1,6 @@ { lib +, fetchpatch +, fetchurl , buildDunePackage , ppx_sexp_conv , base @@ -47,13 +49,21 @@ buildDunePackage { ipaddr ]; - doCheck = true; + # Examples don't compile with core 0.15. See https://github.com/mirage/ocaml-cohttp/pull/864. + doCheck = false; checkInputs = [ ounit mirage-crypto core ]; + # Compatibility with core 0.15. No longer needed after updating cohttp to 5.0.0. + patches = fetchpatch { + url = "https://github.com/mirage/ocaml-cohttp/commit/5a7124478ed31c6b1fa6a9a50602c2ec839083b5.patch"; + sha256 = "0i99rl8604xqwb6d0yzk9ws4dflbn0j4hv2nba2qscbqrrn22rw3"; + }; + patchFlags = "-p1 -F3"; + meta = cohttp.meta // { description = "CoHTTP implementation for the Async concurrency library"; }; diff --git a/pkgs/development/ocaml-modules/faraday/async.nix b/pkgs/development/ocaml-modules/faraday/async.nix index 666eb684925ce..05b085f92aca6 100644 --- a/pkgs/development/ocaml-modules/faraday/async.nix +++ b/pkgs/development/ocaml-modules/faraday/async.nix @@ -1,9 +1,14 @@ -{ buildDunePackage, faraday, core, async }: +{ buildDunePackage, fetchpatch, faraday, core, async }: buildDunePackage rec { pname = "faraday-async"; inherit (faraday) version src useDune2; + patches = fetchpatch { + url = "https://github.com/inhabitedtype/faraday/commit/31c3fc7f91ecca0f1deea10b40fd5e33bcd35f75.patch"; + sha256 = "05z5gk7hxq7qvwg6f73hdhfcnx19p1dq6wqh8prx667y8zsaq2zj"; + }; + minimumOCamlVersion = "4.08"; propagatedBuildInputs = [ faraday core async ]; diff --git a/pkgs/development/ocaml-modules/hack_parallel/default.nix b/pkgs/development/ocaml-modules/hack_parallel/default.nix index 122ee2149f3ab..8d1414731f135 100644 --- a/pkgs/development/ocaml-modules/hack_parallel/default.nix +++ b/pkgs/development/ocaml-modules/hack_parallel/default.nix @@ -1,5 +1,5 @@ -{ lib, fetchFromGitHub, buildDunePackage, core, core_kernel, pkg-config, sqlite -}: +{ lib, fetchFromGitHub, buildDunePackage, core, core_unix, pkg-config +, sqlite }: buildDunePackage rec { pname = "hack_parallel"; version = "1.0.1"; @@ -13,9 +13,11 @@ buildDunePackage rec { sha256 = "0qjlkw35r4q2cm0n2x0i73zvx1xgrp6axaia2nm8zxpm49mid629"; }; + patches = [ ./hack_parallel.patch ]; + nativeBuildInputs = [ pkg-config ]; - propagatedBuildInputs = [ core core_kernel sqlite ]; + propagatedBuildInputs = [ core core_unix sqlite ]; meta = { description = diff --git a/pkgs/development/ocaml-modules/hack_parallel/hack_parallel.patch b/pkgs/development/ocaml-modules/hack_parallel/hack_parallel.patch new file mode 100644 index 0000000000000..174803a348182 --- /dev/null +++ b/pkgs/development/ocaml-modules/hack_parallel/hack_parallel.patch @@ -0,0 +1,68 @@ +diff --git a/src/heap/sharedMem.ml b/src/heap/sharedMem.ml +index 600e272..511b724 100644 +--- a/src/heap/sharedMem.ml ++++ b/src/heap/sharedMem.ml +@@ -521,7 +521,7 @@ end = struct + + let stack: t option ref = ref None + +- let has_local_changes () = Core_kernel.Option.is_some (!stack) ++ let has_local_changes () = Core.Option.is_some (!stack) + + let rec mem stack_opt key = + match stack_opt with +diff --git a/src/interface/memory.ml b/src/interface/memory.ml +index 3554b17..09aa1f5 100644 +--- a/src/interface/memory.ml ++++ b/src/interface/memory.ml +@@ -66,10 +66,10 @@ let get_heap_handle () = + + + let heap_use_ratio () = +- Core_kernel.Float.of_int (SharedMemory.heap_size ()) /. +- Core_kernel.Float.of_int initial_heap_size ++ Core.Float.of_int (SharedMemory.heap_size ()) /. ++ Core.Float.of_int initial_heap_size + + + let slot_use_ratio () = + let { SharedMemory.used_slots; slots; _ } = SharedMemory.hash_stats () in +- Core_kernel.Float.of_int used_slots /. Core_kernel.Float.of_int slots ++ Core.Float.of_int used_slots /. Core.Float.of_int slots +diff --git a/src/interface/scheduler.ml b/src/interface/scheduler.ml +index 9b8282a..b5d41b5 100644 +--- a/src/interface/scheduler.ml ++++ b/src/interface/scheduler.ml +@@ -48,7 +48,7 @@ let map_reduce + | Some exact_size when exact_size > 0 -> + (List.length work / exact_size) + 1 + | _ -> +- let bucket_multiplier = Core_kernel.Int.min bucket_multiplier (1 + (List.length work / 400)) in ++ let bucket_multiplier = Core.Int.min bucket_multiplier (1 + (List.length work / 400)) in + number_of_workers * bucket_multiplier + in + MultiWorker.call +diff --git a/src/utils/dune b/src/utils/dune +index 50a4c42..45e4a5a 100644 +--- a/src/utils/dune ++++ b/src/utils/dune +@@ -15,6 +15,7 @@ + sysinfo) + (libraries + core ++ core_unix + str + hack_parallel.collections + hack_parallel.disk +diff --git a/src/utils/hh_logger.ml b/src/utils/hh_logger.ml +index 4c99f05..8075ed5 100644 +--- a/src/utils/hh_logger.ml ++++ b/src/utils/hh_logger.ml +@@ -9,6 +9,7 @@ + *) + + open Core ++module Unix = Core_unix + + let timestamp_string () = + let open Unix in diff --git a/pkgs/development/ocaml-modules/janestreet/0.15.nix b/pkgs/development/ocaml-modules/janestreet/0.15.nix new file mode 100644 index 0000000000000..bc2f2f24e0a9e --- /dev/null +++ b/pkgs/development/ocaml-modules/janestreet/0.15.nix @@ -0,0 +1,1000 @@ +{ self +, fetchpatch +, lib +, openssl +, patdiff +, zstd +}: + +with self; + +{ + + abstract_algebra = janePackage { + pname = "abstract_algebra"; + minimumOCamlVersion = "4.08"; + hash = "12imf6ibm7qb8r1fpqnrl20x2z14zl3ri1vzg0z8qby9l8bv2fbd"; + meta.description = "A small library describing abstract algebra concepts"; + propagatedBuildInputs = [ base ppx_jane ]; + }; + + accessor = janePackage { + pname = "accessor"; + minimumOCamlVersion = "4.09"; + hash = "17rzf0jpc9s3yrxcnn630jhgsw5mrnrhwbfh62hqxqanascc5rxh"; + meta.description = "A library that makes it nicer to work with nested functional data structures"; + propagatedBuildInputs = [ higher_kinded ]; + }; + + accessor_async = janePackage { + pname = "accessor_async"; + minimumOCamlVersion = "4.09"; + hash = "17r6af55ms0i496jsfx0xpdm336c2vhyf49b3s8s1gpz521wrgmc"; + meta.description = "Accessors for Async types, for use with the Accessor library"; + propagatedBuildInputs = [ accessor_core async_kernel ]; + }; + + accessor_base = janePackage { + pname = "accessor_base"; + minimumOCamlVersion = "4.09"; + hash = "1qvq005vxf6n1c7swzb4bzcqdh471bfb9gcmdj4m57xg85xznc1n"; + meta.description = "Accessors for Base types, for use with the Accessor library"; + propagatedBuildInputs = [ ppx_accessor ]; + }; + + accessor_core = janePackage { + minimumOCamlVersion = "4.09"; + pname = "accessor_core"; + hash = "0zrs5zbyrhfbah73g22l19bw1mmljhyb3l2mrwcxgbjq9pqp0k9v"; + meta.description = "Accessors for Core types, for use with the Accessor library"; + propagatedBuildInputs = [ accessor_base core_kernel ]; + }; + + async = janePackage { + pname = "async"; + hash = "0pykmnsil754jsnr8gss91ykyjvivngx4ii0ih3nsg1x2jl9xmy2"; + meta.description = "Monadic concurrency library"; + propagatedBuildInputs = [ async_rpc_kernel async_unix textutils ]; + doCheck = false; # we don't have netkit_sockets + }; + + async_extra = janePackage { + pname = "async_extra"; + hash = "0pxp0b4shz9krsj8xfzajv8a1mijgf0xdgxrn2abdqrz3rvj6pig"; + meta.description = "Monadic concurrency library"; + propagatedBuildInputs = [ async_kernel ]; + }; + + async_find = janePackage { + pname = "async_find"; + hash = "119988nkcnw6l6wch4llqkvsrawv2gkbn5q4hngpdwvnw0g0aapv"; + meta.description = "Directory traversal with Async"; + propagatedBuildInputs = [ async ]; + }; + + async_inotify = janePackage { + pname = "async_inotify"; + hash = "1nxz6bijp7liy18ljrxg92v2m8v8fqcs1pmzg9kbcf0d4vij8j2p"; + meta.description = "Async wrapper for inotify"; + propagatedBuildInputs = [ async_find inotify ]; + }; + + async_interactive = janePackage { + pname = "async_interactive"; + hash = "00hr2lhs8p3hwnyllmns59rwlpimc5b7r6v4zn6cmpb1riblaxqp"; + meta.description = "Utilities for building simple command-line based user interfaces"; + propagatedBuildInputs = [ async ]; + }; + + async_js = janePackage { + pname = "async_js"; + hash = "184j077bz686k5lrqswircnrdqldb316ngpzq7xri1pcsl39sy3q"; + meta.description = "A small library that provide Async support for JavaScript platforms"; + buildInputs = [ js_of_ocaml-ppx ]; + propagatedBuildInputs = [ async_rpc_kernel js_of_ocaml uri-sexp ]; + }; + + async_kernel = janePackage { + pname = "async_kernel"; + hash = "01if6c8l2h64v7sk56xr8acnmj6g9whxcjrzzzvczspq88hq2bfh"; + meta.description = "Monadic concurrency library"; + propagatedBuildInputs = [ core_kernel ]; + }; + + async_rpc_kernel = janePackage { + pname = "async_rpc_kernel"; + hash = "1b5rp5yam03ir4f1sixpzjg1zdqmkb7lvnaa82kac4fzk80gfrfr"; + meta.description = "Platform-independent core of Async RPC library"; + propagatedBuildInputs = [ async_kernel protocol_version_header ]; + }; + + async_rpc_websocket = janePackage { + pname = "async_rpc_websocket"; + hash = "1n93jhkz5r76xcc40c4i4sxcyfz1dbppz8sjfxpwcwjyi6lyhp1p"; + meta.description = "Library to serve and dispatch Async RPCs over websockets"; + propagatedBuildInputs = [ async_rpc_kernel async_websocket cohttp_async_websocket ]; + }; + + async_sendfile = janePackage { + pname = "async_sendfile"; + hash = "0lnagdxfnac4z29narphf2ab5a23ys883zmc45r96rssfx82i3fs"; + meta.description = "Thin wrapper around [Linux_ext.sendfile] to send full files"; + propagatedBuildInputs = [ async_unix ]; + }; + + async_shell = janePackage { + pname = "async_shell"; + hash = "07iwlyrc4smk6hsnz89cz2ihp670mllq0y9wbdafvagm1y1p62vx"; + meta.description = "Shell helpers for Async"; + propagatedBuildInputs = [ async shell ]; + }; + + async_smtp = janePackage { + pname = "async_smtp"; + hash = "1m00j7wcb0blipnc1m6by70gd96a1k621b4dgvgffp8as04a461r"; + meta.description = "SMTP client and server"; + propagatedBuildInputs = [ async_extra async_inotify async_sendfile async_shell async_ssl email_message resource_cache re2_stable sexp_macro ]; + }; + + async_ssl = janePackage { + pname = "async_ssl"; + hash = "1b7f7p3xj4jr2n2dxy2lp7a9k7944w6x2nrg6524clvcsd1ax4hn"; + meta.description = "Async wrappers for SSL"; + buildInputs = [ dune-configurator ]; + propagatedBuildInputs = [ async ctypes openssl ]; + # in ctypes.foreign 0.18.0 threaded and unthreaded have been merged + postPatch = '' + substituteInPlace bindings/dune \ + --replace "ctypes.foreign.threaded" "ctypes.foreign" + ''; + }; + + async_unix = janePackage { + pname = "async_unix"; + hash = "0z4fgpn93iw0abd7l9kac28qgzgc5qr2x0s1n2zh49lsdn02n6ys"; + meta.description = "Monadic concurrency library"; + propagatedBuildInputs = [ async_kernel core_unix ]; + }; + + async_websocket = janePackage { + pname = "async_websocket"; + hash = "16ixqfnx9jp77bvx11dlzsq0pzfpyiif60hl2q06zncyswky9xgb"; + meta.description = "A library that implements the websocket protocol on top of Async"; + propagatedBuildInputs = [ async cryptokit ]; + }; + + base = janePackage { + pname = "base"; + hash = "1qyycqqr4dijvxm4hhy79c964wd91kpsfvb89kna1qwgllg0hrpj"; + minimumOCamlVersion = "4.10"; + meta.description = "Full standard library replacement for OCaml"; + buildInputs = [ dune-configurator ]; + propagatedBuildInputs = [ sexplib0 ]; + checkInputs = [ alcotest ]; + }; + + base_bigstring = janePackage { + pname = "base_bigstring"; + hash = "1hv3hw2fwqmkrxms1g6rw3c18mmla1z5bva3anx45mnff903iv4q"; + minimumOCamlVersion = "4.08"; + meta.description = "String type based on [Bigarray], for use in I/O and C-bindings"; + propagatedBuildInputs = [ int_repr ppx_jane ]; + }; + + base_quickcheck = janePackage { + pname = "base_quickcheck"; + hash = "0q73kfr67cz5wp4qn4rq3lpa922hqmvwdiinnans0js65fvlgqsi"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Randomized testing framework, designed for compatibility with Base"; + propagatedBuildInputs = [ ppx_base ppx_fields_conv ppx_let ppx_sexp_value splittable_random ]; + }; + + bignum = janePackage { + pname = "bignum"; + hash = "12q3xcv78b4s9srnc17jbyn53d5drmwmyvgp62p7nk3fs4f7cr4f"; + propagatedBuildInputs = [ core_kernel zarith zarith_stubs_js ]; + meta.description = "Core-flavoured wrapper around zarith's arbitrary-precision rationals"; + }; + + bin_prot = janePackage { + pname = "bin_prot"; + hash = "1qfqglscc25wwnjx7byqmjcnjww1msnr8940gyg8h93wdq43fjnh"; + minimumOCamlVersion = "4.04.2"; + meta.description = "A binary protocol generator"; + propagatedBuildInputs = [ ppx_compare ppx_custom_printf ppx_fields_conv ppx_optcomp ppx_variants_conv ]; + }; + + bonsai = janePackage { + pname = "bonsai"; + hash = "150zx2g1dmhyrxwqq8j7f2m3hjpmk5bk182ihx2gdbarhw1ainpm"; + meta.description = "A library for building dynamic webapps, using Js_of_ocaml"; + buildInputs = [ ppx_pattern_bind ]; + nativeBuildInputs = [ js_of_ocaml-compiler ocaml-embed-file ]; + propagatedBuildInputs = [ + async + async_extra + async_rpc_websocket + cohttp-async + core_bench + fuzzy_match + incr_dom + js_of_ocaml-ppx + patdiff + ppx_css + ppx_typed_fields + profunctor + textutils + ]; + patches = [ ./bonsai_jsoo_4_0.patch ]; + }; + + cinaps = janePackage { + pname = "cinaps"; + version = "0.15.1"; + hash = "0g856cxmxg4vicwslhqldplkpwi158s2d62vwzv26xg5m6wjn9rg"; + minimumOCamlVersion = "4.04"; + meta.description = "Trivial metaprogramming tool"; + propagatedBuildInputs = [ re ]; + doCheck = false; # fails because ppx_base doesn't include ppx_js_style + }; + + cohttp_async_websocket = janePackage { + pname = "cohttp_async_websocket"; + hash = "0d0smavnxpnwrmhlcf3b5a3cm3n9kz1y8fh6l28xv6zrn4sc7ik8"; + meta.description = "Websocket library for use with cohttp and async"; + propagatedBuildInputs = [ async_websocket cohttp-async ppx_jane uri-sexp ]; + }; + + core = janePackage { + pname = "core"; + hash = "1m2ybvlz9zlb2d0jc0j7wdgd18mx9sh3ds2ylkv0cfjx1pzi0l25"; + meta.description = "Industrial strength alternative to OCaml's standard library"; + buildInputs = [ jst-config ]; + propagatedBuildInputs = [ base base_bigstring base_quickcheck ppx_jane time_now ]; + doCheck = false; # circular dependency with core_kernel + }; + + core_bench = janePackage { + pname = "core_bench"; + hash = "0v6lm9vz6y1qd7h8pg9l5jsy8qr74vlk1nd4qzchld4jhwq7mbdi"; + meta.description = "Benchmarking library"; + propagatedBuildInputs = [ textutils ]; + }; + + core_extended = janePackage { + pname = "core_extended"; + hash = "0sx79hc1y1daczib2p4nbyw4aqnznmdd83knrhs5q153j7lnlalx"; + meta.description = "Extra components that are not as closely vetted or as stable as Core"; + propagatedBuildInputs = [ core_unix record_builder ]; + }; + + core_kernel = janePackage { + pname = "core_kernel"; + hash = "05mb4vbf293iq1xx4acyrmi9cgcw6capwrsa54ils62alby6w6yq"; + meta.description = "System-independent part of Core"; + buildInputs = [ jst-config ]; + propagatedBuildInputs = [ base_bigstring core int_repr sexplib ]; + doCheck = false; # we don't have quickcheck_deprecated + }; + + core_unix = janePackage { + pname = "core_unix"; + hash = "1xzxqzg23in5ivz0v3qshzpr4w92laayscqj9im7jylh2ar1xi0a"; + meta.description = "Unix-specific portions of Core"; + buildInputs = [ jst-config ]; + propagatedBuildInputs = [ core_kernel expect_test_helpers_core ocaml_intrinsics ppx_jane timezone spawn ]; + postPatch = '' + patchShebangs unix_pseudo_terminal/src/discover.sh + ''; + }; + + csvfields = janePackage { + pname = "csvfields"; + hash = "0z47pq17bw776hzvk48ypbd92ps9vlvl86mnhw3j6cqx4ahbjik3"; + propagatedBuildInputs = [ core num ]; + meta.description = "Runtime support for ppx_xml_conv and ppx_csv_conv"; + }; + + delimited_parsing = janePackage { + pname = "delimited_parsing"; + hash = "0d050v58zzi8c4qiwxbfcyrdw6zvncnnl3qj79qi0yq4xkg7820r"; + propagatedBuildInputs = [ async core_extended ]; + meta.description = "Parsing of character (e.g., comma) separated and fixed-width values"; + }; + + ecaml = janePackage { + pname = "ecaml"; + hash = "08g2bl06vkn3bkqzkmvk2646aqb6jj4a7n3wgzpcx1c2gl3iw5i6"; + meta.description = "Library for writing Emacs plugin in OCaml"; + propagatedBuildInputs = [ async expect_test_helpers_core ]; + }; + + email_message = janePackage { + pname = "email_message"; + hash = "00h66l2g5rjaay0hbyqy4v9i866g779miriwv20h9k4mliqdq7in"; + meta.description = "E-mail message parser"; + propagatedBuildInputs = [ angstrom async base64 cryptokit magic-mime re2 ]; + }; + + expect_test_helpers_async = janePackage { + pname = "expect_test_helpers_async"; + hash = "14v4966p5dmqgjb9sgrvnsixv0w0bagicn8v44g9mf9d88z8pfym"; + meta.description = "Async helpers for writing expectation tests"; + propagatedBuildInputs = [ async expect_test_helpers_core ]; + }; + + expect_test_helpers_core = janePackage { + pname = "expect_test_helpers_core"; + hash = "0bxs3g0zzym8agfcbpg5lmrh6hcb86z861bq40xhhfwqf4pzdbfa"; + meta.description = "Helpers for writing expectation tests"; + propagatedBuildInputs = [ core_kernel sexp_pretty ]; + }; + + fieldslib = janePackage { + pname = "fieldslib"; + hash = "0xwf9mdxlyr3f0vv5y82cyw2bsckwl8rwf6jm6bai1gqpgxjq756"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Syntax extension to define first class values representing record fields, to get and set record fields, iterate and fold over all fields of a record and create new record values"; + propagatedBuildInputs = [ base ]; + }; + + fuzzy_match = janePackage { + pname = "fuzzy_match"; + hash = "0s5w81698b07l5m11nwx8xbjcpmp54dnf5fcrnlva22jrlsf14h4"; + meta.description = "A library for fuzzy string matching"; + propagatedBuildInputs = [ core ppx_jane ]; + }; + + higher_kinded = janePackage { + pname = "higher_kinded"; + minimumOCamlVersion = "4.09"; + hash = "0rafxxajqswi070h8sinhjna0swh1hc6d7i3q7y099yj3wlr2y1l"; + meta.description = "A library with an encoding of higher kinded types in OCaml"; + propagatedBuildInputs = [ base ppx_jane ]; + }; + + incr_dom = janePackage { + pname = "incr_dom"; + hash = "1sija9w2im8vdp61h387w0mww9hh7jgkgsjcccps4lbv936ac7c1"; + meta.description = "A library for building dynamic webapps, using Js_of_ocaml"; + buildInputs = [ js_of_ocaml-ppx ]; + propagatedBuildInputs = [ async_js incr_map incr_select virtual_dom ]; + patches = [ ./incr_dom_jsoo_4_0.patch ]; + }; + + incr_map = janePackage { + pname = "incr_map"; + hash = "0aq8wfylvq68him92vzh1fqmr7r0lfwc5cdiqr10r5x032vzpnii"; + meta.description = "Helpers for incremental operations on map like data structures"; + buildInputs = [ ppx_pattern_bind ]; + propagatedBuildInputs = [ abstract_algebra incremental ]; + }; + + incr_select = janePackage { + pname = "incr_select"; + hash = "0qm2i4hb5jh2ra95kq881s4chkwbd2prvql1c0nahd63h829m57l"; + meta.description = "Handling of large set of incremental outputs from a single input"; + propagatedBuildInputs = [ incremental ]; + }; + + incremental = janePackage { + pname = "incremental"; + hash = "1dp30mhljnbcxqimydwbmxx0x4y4xnb55gyhldm1f5qrwdxdl747"; + meta.description = "Library for incremental computations"; + propagatedBuildInputs = [ core_kernel ]; + }; + + int_repr = janePackage { + pname = "int_repr"; + hash = "0ph88ym3s9dk30n17si2xam40sp8wv1xffw5cl3bskc2vfya1nvl"; + meta.description = "Integers of various widths"; + propagatedBuildInputs = [ base ppx_jane ]; + }; + + jane-street-headers = janePackage { + pname = "jane-street-headers"; + hash = "1lzk3w66x4429n2j75lwm55xafc46mywgdrbh9nc9jwqwgzf0wwx"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Jane Street C header files"; + }; + + jsonaf = janePackage { + pname = "jsonaf"; + hash = "1j9rn8vsvfpgmdpmdqb5qhvss5171j8n3ii1bcgnavqinchbvqa6"; + meta.description = "A library for parsing, manipulating, and serializing data structured as JSON"; + propagatedBuildInputs = [ base ppx_jane angstrom faraday ]; + }; + + jst-config = janePackage { + pname = "jst-config"; + hash = "1lxqsj5k3v8p7g802vj1xc6bs5wrfpszh3q61xvpcd42pf3ahma9"; + meta.description = "Compile-time configuration for Jane Street libraries"; + buildInputs = [ dune-configurator ppx_assert stdio ]; + }; + + ocaml-compiler-libs = janePackage { + pname = "ocaml-compiler-libs"; + version = "0.12.4"; + minimumOCamlVersion = "4.04.1"; + hash = "00if2f7j9d8igdkj4rck3p74y17j6b233l91mq02drzrxj199qjv"; + meta.description = "OCaml compiler libraries repackaged"; + }; + + ocaml-embed-file = janePackage { + pname = "ocaml-embed-file"; + hash = "1nzgc0q05f0j3q1kwfpyhhhpgwrfjvmkqqifrkrm4y7d1i44bfnw"; + propagatedBuildInputs = [ async ppx_jane ]; + meta.description = "Files contents as module constants"; + }; + + ocaml_intrinsics = janePackage { + pname = "ocaml_intrinsics"; + minimumOCamlVersion = "4.08"; + hash = "1fdfl78b8br0j9w4046i0fmmaqn4cgl06q94rsniyagx9747pnsr"; + meta.description = "Intrinsics"; + buildInputs = [ dune-configurator ]; + doCheck = false; # test rules broken + }; + + parsexp = janePackage { + pname = "parsexp"; + hash = "1grzpxi39318vcqhwf723hqh11k68irh59zb3dyg9lw8wjn7752a"; + minimumOCamlVersion = "4.04.2"; + meta.description = "S-expression parsing library"; + propagatedBuildInputs = [ base sexplib0 ]; + }; + + patience_diff = janePackage { + pname = "patience_diff"; + hash = "17yrhn4qfi31m8g1ygb3m6i9z4fqd8f60fn6viazgx06s3x4xp3v"; + meta.description = "Diff library using Bram Cohen's patience diff algorithm"; + propagatedBuildInputs = [ core_kernel ]; + }; + + posixat = janePackage { + pname = "posixat"; + hash = "1xgycwa0janrfn9psb7xrm0820blr82mqf1lvjy9ipqalj7v9w1f"; + minimumOCamlVersion = "4.07"; + propagatedBuildInputs = [ ppx_optcomp ppx_sexp_conv ]; + meta.description = "Binding to the posix *at functions"; + }; + + ppx_accessor = janePackage { + pname = "ppx_accessor"; + minimumOCamlVersion = "4.09"; + hash = "0qv51if1nk0zff2v6q946h8ac7bpd5xa4ivyixl9g4h2mk29w4qb"; + meta.description = "[@@deriving] plugin to generate accessors for use with the Accessor libraries"; + propagatedBuildInputs = [ accessor ]; + }; + + ppx_assert = janePackage { + pname = "ppx_assert"; + hash = "0dic250q3flrjs3i70a2qqqnhqqj75ddlixpy7hdfghjw32azw90"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Assert-like extension nodes that raise useful errors on failure"; + propagatedBuildInputs = [ ppx_cold ppx_compare ppx_here ppx_sexp_conv ]; + }; + + ppx_base = janePackage { + pname = "ppx_base"; + hash = "13rfmy2fxvwi7z5l1mai474ri5anqjm8q4hs7dblplsjjd9m5ld1"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Base set of ppx rewriters"; + propagatedBuildInputs = [ ppx_cold ppx_enumerate ppx_hash ]; + }; + + ppx_bench = janePackage { + pname = "ppx_bench"; + hash = "0bc0gbm922417wqisafxh35jslcp7xy1s0h0a1q32rhx0ivxx3g6"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Syntax extension for writing in-line benchmarks in ocaml code"; + propagatedBuildInputs = [ ppx_inline_test ]; + }; + + ppx_bin_prot = janePackage { + pname = "ppx_bin_prot"; + hash = "1280wsls061fmvmdysjqn3lv4mnkyg400jnjf4jyfr14s33h1ad5"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Generation of bin_prot readers and writers from types"; + propagatedBuildInputs = [ bin_prot ppx_here ]; + doCheck = false; # circular dependency with ppx_jane + }; + + ppx_cold = janePackage { + pname = "ppx_cold"; + hash = "0x7xgpvy0l28k971xy08ibhr4w9nh8d9zvxc6jfxxx4fbfcv5gca"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Expands [@cold] into [@inline never][@specialise never][@local never]"; + propagatedBuildInputs = [ ppxlib ]; + }; + + ppx_compare = janePackage { + pname = "ppx_compare"; + hash = "1wjwqkr71p61vjidbr80l93y4kkad7xsfyp04w8qfqrj7h5nm625"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Generation of comparison functions from types"; + propagatedBuildInputs = [ ppxlib base ]; + }; + + ppx_custom_printf = janePackage { + pname = "ppx_custom_printf"; + hash = "1k8nmq6kwqz2wpkm9ymq749dz1vd8lxrjc711knp1wyz5935hnsv"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Printf-style format-strings for user-defined string conversion"; + propagatedBuildInputs = [ ppx_sexp_conv ]; + }; + + ppx_css = janePackage { + pname = "ppx_css"; + hash = "09dpmj3f3m3z1ji9hq775iqr3cfmv5gh7q9zlblizj4wx4y0ibyi"; + meta.description = "A ppx that takes in css strings and produces a module for accessing the unique names defined within"; + propagatedBuildInputs = [ core_kernel ppxlib js_of_ocaml js_of_ocaml-ppx sedlex_2 ]; + }; + + ppx_disable_unused_warnings = janePackage { + pname = "ppx_disable_unused_warnings"; + hash = "0sb5i4v7p9df2bxk66rjs30k9fqdrwsq1jgykjv6wyrx2d9bv955"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Expands [@disable_unused_warnings] into [@warning \"-20-26-32-33-34-35-36-37-38-39-60-66-67\"]"; + propagatedBuildInputs = [ ppxlib ]; + }; + + ppx_enumerate = janePackage { + pname = "ppx_enumerate"; + hash = "1i0f6jv5cappw3idd70wpg76d7x6mvxapa89kri1bwz47hhg4pkz"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Generate a list containing all values of a finite type"; + propagatedBuildInputs = [ ppxlib ]; + }; + + ppx_expect = janePackage { + pname = "ppx_expect"; + hash = "134dl5qhjxsj2mcmrx9f3m0iys0n5mjfpz9flj8zn8d2jir43776"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Cram like framework for OCaml"; + propagatedBuildInputs = [ ppx_here ppx_inline_test re ]; + doCheck = false; # test build rules broken + }; + + ppx_fields_conv = janePackage { + pname = "ppx_fields_conv"; + hash = "094wsnw7fcwgl9xg6vkjb0wbgpn9scsp847yhdd184sz9v1amz14"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Generation of accessor and iteration functions for ocaml records"; + propagatedBuildInputs = [ fieldslib ppxlib ]; + }; + + ppx_fixed_literal = janePackage { + pname = "ppx_fixed_literal"; + hash = "10siwcqrqa4gh0mg6fkaby0jjskc01r81pcblc67h3vmbjjh08j9"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Simpler notation for fixed point literals"; + propagatedBuildInputs = [ ppxlib ]; + }; + + ppx_hash = janePackage { + pname = "ppx_hash"; + hash = "15agkwavadllzxdv4syjna02083nfnap8qs4yqf5s0adjw73fzyg"; + minimumOCamlVersion = "4.04.2"; + meta.description = "A ppx rewriter that generates hash functions from type expressions and definitions"; + propagatedBuildInputs = [ ppx_compare ppx_sexp_conv ]; + }; + + ppx_here = janePackage { + pname = "ppx_here"; + hash = "0jv81k8x18q8rxdyfwavrvx8yq9k5m3abpmgdg6zipx2ajcjzvag"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Expands [%here] into its location"; + propagatedBuildInputs = [ ppxlib ]; + doCheck = false; # test build rules broken + }; + + ppx_ignore_instrumentation = janePackage { + pname = "ppx_ignore_instrumentation"; + hash = "16fgig88g3jr0m3i636fr52h29h1yzhi8nhnl4029zn808kcdyj2"; + minimumOCamlVersion = "4.08"; + meta.description = "Ignore Jane Street specific instrumentation extensions"; + propagatedBuildInputs = [ ppxlib ]; + }; + + ppx_inline_test = janePackage { + pname = "ppx_inline_test"; + hash = "1a0gaj9p6gbn5j7c258mnzr7yjlq0hqi3aqqgyj1g2dbk1sxdbjz"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Syntax extension for writing in-line tests in ocaml code"; + propagatedBuildInputs = [ ppxlib time_now ]; + doCheck = false; # test build rules broken + }; + + ppx_jane = janePackage { + pname = "ppx_jane"; + hash = "1p6847gdfnnj6qpa4yh57s6wwpsl7rfgy0q7993chz24h9mhz5lk"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Standard Jane Street ppx rewriters"; + propagatedBuildInputs = [ base_quickcheck ppx_bin_prot ppx_disable_unused_warnings ppx_expect ppx_fixed_literal ppx_ignore_instrumentation ppx_log ppx_module_timer ppx_optcomp ppx_optional ppx_pipebang ppx_stable ppx_string ppx_typerep_conv ppx_variants_conv ]; + }; + + ppx_js_style = janePackage { + pname = "ppx_js_style"; + hash = "0q2p9pvmlncgv0hprph95xiv7s6q44ynvp4yl4dckf1qx68rb3ba"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Code style checker for Jane Street Packages"; + propagatedBuildInputs = [ octavius ppxlib ]; + }; + + ppx_let = janePackage { + pname = "ppx_let"; + hash = "04v3fq0vnvvavxbc7hfsrg8732pwxbyw8pjl3xfplqdqci6fj15n"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Monadic let-bindings"; + propagatedBuildInputs = [ ppxlib ppx_here ]; + }; + + ppx_log = janePackage { + pname = "ppx_log"; + hash = "08i9gz3f4w3bmlrfdw7ja9awsfkhhldz03bnnc4hijfmn8sawzi0"; + minimumOCamlVersion = "4.08.0"; + meta.description = "Ppx_sexp_message-like extension nodes for lazily rendering log messages"; + propagatedBuildInputs = [ base ppx_here ppx_sexp_conv ppx_sexp_message sexplib ]; + }; + + ppx_module_timer = janePackage { + pname = "ppx_module_timer"; + hash = "0lzi5hxi10p89ddqbrc667267f888kqslal76gfhmszyk60n20av"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Ppx rewriter that records top-level module startup times"; + propagatedBuildInputs = [ time_now ]; + }; + + ppx_optcomp = janePackage { + pname = "ppx_optcomp"; + hash = "0ypivfipi8fcr9pqyvl2ajpcivmr1irdwwv248i4x6mggpc2pl0b"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Optional compilation for OCaml"; + propagatedBuildInputs = [ ppxlib ]; + }; + + ppx_optional = janePackage { + pname = "ppx_optional"; + hash = "0amxwxhkyzamgnxx400qhvxzqr3m4sazhhkc516lm007pynv7xq2"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Pattern matching on flat options"; + propagatedBuildInputs = [ ppxlib ]; + }; + + ppx_pattern_bind = janePackage { + pname = "ppx_pattern_bind"; + hash = "01nfdk9yvk92r7sjl4ngxfsx8fyqh2dsjxz0i299nszv9jc4rn4f"; + minimumOCamlVersion = "4.07"; + meta.description = "A ppx for writing fast incremental bind nodes in a pattern match"; + propagatedBuildInputs = [ ppx_let ]; + }; + + ppx_pipebang = janePackage { + pname = "ppx_pipebang"; + hash = "0sm5dghyalhws3hy1cc2ih36az1k4q02hcgj6l26gwyma3y4irvq"; + minimumOCamlVersion = "4.04.2"; + meta.description = "A ppx rewriter that inlines reverse application operators `|>` and `|!`"; + propagatedBuildInputs = [ ppxlib ]; + }; + + ppx_python = janePackage { + pname = "ppx_python"; + hash = "1d2wf0rkvxg07q6xq2zmxh6hmvnwlsmny3mm92jsg1s7bdl39gap"; + meta.description = "A [@@deriving] plugin to generate Python conversion functions "; + propagatedBuildInputs = [ ppx_base ppxlib pyml ]; + }; + + ppx_sexp_conv = janePackage { + pname = "ppx_sexp_conv"; + minimumOCamlVersion = "4.04.2"; + hash = "1fyf7hgxprn7pj58rmmrfpv938a0avpzvvk6wzihpmfm6whgbdm8"; + meta.description = "[@@deriving] plugin to generate S-expression conversion functions"; + propagatedBuildInputs = [ ppxlib sexplib0 base ]; + }; + + ppx_sexp_message = janePackage { + pname = "ppx_sexp_message"; + hash = "0a7hx50bkkc5n5msc3zzc4ixnp7674x3mallknb9j31jnd8l90nj"; + minimumOCamlVersion = "4.04.2"; + meta.description = "A ppx rewriter for easy construction of s-expressions"; + propagatedBuildInputs = [ ppx_here ppx_sexp_conv ]; + }; + + ppx_sexp_value = janePackage { + pname = "ppx_sexp_value"; + hash = "0kz83j9v6yz3v8c6vr9ilhkcci4hhjd6i6r6afnx72jh6i7d3hnv"; + minimumOCamlVersion = "4.04.2"; + meta.description = "A ppx rewriter that simplifies building s-expressions from ocaml values"; + propagatedBuildInputs = [ ppx_here ppx_sexp_conv ]; + }; + + ppx_stable = janePackage { + pname = "ppx_stable"; + hash = "1as0v0x8c9ilyhngax55lvwyyi4a2wshyan668v0f2s1608cwb1l"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Stable types conversions generator"; + propagatedBuildInputs = [ ppxlib ]; + }; + + ppx_string = janePackage { + pname = "ppx_string"; + minimumOCamlVersion = "4.04.2"; + hash = "1dp5frk6cig5m3m5rrh2alw63snyf845x7zlkkaljip02pqcbw1s"; + meta.description = "Ppx extension for string interpolation"; + propagatedBuildInputs = [ ppx_base ppxlib stdio ]; + }; + + ppx_typed_fields = janePackage { + pname = "ppx_typed_fields"; + hash = "0hxililjgy4jh66b4xmphrfhv6qpp7dz7xbz3islp357hf18niqy"; + meta.description = "GADT-based field accessors and utilities"; + propagatedBuildInputs = [ core ppx_jane ppxlib ]; + }; + + ppx_typerep_conv = janePackage { + pname = "ppx_typerep_conv"; + minimumOCamlVersion = "4.04.2"; + hash = "1q1lzykpm83ra4l5jh4rfddhd3c96kx4s4rvx0w4b51z1qk56zam"; + meta.description = "Generation of runtime types from type declarations"; + propagatedBuildInputs = [ ppxlib typerep ]; + }; + + ppx_variants_conv = janePackage { + pname = "ppx_variants_conv"; + minimumOCamlVersion = "4.04.2"; + hash = "1dh0bw9dn246k00pymf59yjkl6x6bxd76lkk9b5xpq2692wwlc3s"; + meta.description = "Generation of accessor and iteration functions for ocaml variant types"; + propagatedBuildInputs = [ variantslib ppxlib ]; + }; + + profunctor = janePackage { + pname = "profunctor"; + hash = "151vk0cagjwn0isnnwryn6gmvnpds4dyj1in9jvv5is8yij203gg"; + meta.description = "A library providing a signature for simple profunctors and traversal of a record"; + propagatedBuildInputs = [ base ppx_jane record_builder ]; + }; + + protocol_version_header = janePackage { + pname = "protocol_version_header"; + hash = "0s638cwf1357gg754rc4306654hhrhzqaqm2lp3yv5vj3ml8p4qy"; + meta.description = "Protocol versioning"; + propagatedBuildInputs = [ core_kernel ]; + }; + + pythonlib = janePackage { + pname = "pythonlib"; + hash = "0p88vmp19zmr0r58dz6sawsmbn4yi2vyymad2c82kp93kg66nm1v"; + meta.description = "A library to help writing wrappers around ocaml code for python"; + patches = lib.optional (lib.versionAtLeast ocaml.version "4.13") ./pythonlib.patch; + propagatedBuildInputs = [ ppx_expect ppx_let ppx_python stdio typerep ]; + }; + + re2 = janePackage { + pname = "re2"; + hash = "0z1cajd8abrryf3gz322jpynba79nv4a2kmmcdz0314ran5w68v3"; + meta.description = "OCaml bindings for RE2, Google's regular expression library"; + propagatedBuildInputs = [ core_kernel ]; + prePatch = '' + substituteInPlace src/re2_c/dune --replace 'CXX=g++' 'CXX=c++' + substituteInPlace src/dune --replace '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2))' '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2) (-x c++))' + ''; + }; + + re2_stable = janePackage { + pname = "re2_stable"; + version = "0.14.0"; + hash = "0kjc0ff6b3509s3b9n4q8ilb06d5fngdh3z58cm95vg7zkcas9w3"; + meta.description = "Re2_stable adds an incomplete but stable serialization of Re2"; + propagatedBuildInputs = [ core re2 ]; + }; + + record_builder = janePackage { + pname = "record_builder"; + hash = "004nqcmwll0vy47mb3d3jlk21cc6adcjy62dkv2k966n9jkh472h"; + meta.description = "A library which provides traversal of records with an applicative"; + propagatedBuildInputs = [ base ppx_jane ]; + }; + + resource_cache = janePackage { + pname = "resource_cache"; + hash = "13wzx8ixgbb7jj5yrps890irw2wvkchnihsn7rfrcvnvrjzzjshm"; + meta.description = "General resource cache"; + propagatedBuildInputs = [ async_rpc_kernel ]; + }; + + sexp = janePackage { + pname = "sexp"; + hash = "00xlsymm1mpgs8cqkb6c36vh5hfw0saghvwiqh7jry65qc5nvv9z"; + propagatedBuildInputs = [ + async + core + csvfields + jsonaf + re2 + sexp_diff + sexp_macro + sexp_pretty + sexp_select + ]; + meta.description = "S-expression swiss knife"; + }; + + sexp_diff = janePackage { + pname = "sexp_diff"; + hash = "1p5xwhj634ij4a0m5k6a3abddi5315y7is1a6ha1lifdz3v985ll"; + propagatedBuildInputs = [ core_kernel ]; + meta.description = "Code for computing the diff of two sexps"; + }; + + sexp_macro = janePackage { + pname = "sexp_macro"; + hash = "1l5dsv9gawmf5dg3rf8sxphp9qs3n4n038nlmf9rxzypzyn112k8"; + propagatedBuildInputs = [ async sexplib ]; + meta.description = "Sexp macros"; + }; + + sexp_pretty = janePackage { + pname = "sexp_pretty"; + hash = "1p1jspwjvrhm8li22xl0n8wngs12d9g7nc1svk6xc32jralnxblg"; + minimumOCamlVersion = "4.07"; + meta.description = "S-expression pretty-printer"; + propagatedBuildInputs = [ ppx_base re sexplib ]; + }; + + sexp_select = janePackage { + pname = "sexp_select"; + hash = "0mmvga9w3gbb2gd1h4l8f1c3l2lrpn1zld2a8xgqyfqfff3vg31p"; + minimumOCamlVersion = "4.07"; + propagatedBuildInputs = [ base ppx_jane ]; + meta.description = "A library to use CSS-style selectors to traverse sexp trees"; + }; + + sexplib0 = janePackage { + pname = "sexplib0"; + hash = "0jag0bz2173b0n7hx013fhghydhh92arqjlrcnf5x025bw8nz66v"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Library containing the definition of S-expressions and some base converters"; + }; + + sexplib = janePackage { + pname = "sexplib"; + hash = "05h34fm3p0179xivc14bixc50pzc8zws46l5gsq310kpm37srq3c"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Library for serializing OCaml values to and from S-expressions"; + propagatedBuildInputs = [ num parsexp ]; + }; + + shell = janePackage { + pname = "shell"; + hash = "1vzdif7w9y1kw2qynlfixwphdgiflrf43j0fzinjp9f56vlhghhy"; + meta.description = "Yet another implementation of fork&exec and related functionality"; + buildInputs = [ jst-config ]; + propagatedBuildInputs = [ textutils ]; + checkInputs = [ ounit ]; + # This currently fails with dune + strictDeps = false; + }; + + shexp = janePackage { + pname = "shexp"; + hash = "05iswnhi92f4yvrh76j3254bvls6fbrdb56mv6vc6mi5f8z4l79i"; + minimumOCamlVersion = "4.07"; + propagatedBuildInputs = [ posixat spawn ]; + meta.description = "Process library and s-expression based shell"; + }; + + spawn = janePackage { + pname = "spawn"; + minimumOCamlVersion = "4.02.3"; + hash = "1fjr91psas5zmk1hxvxh0dchhn0pkyzlr4gg232f5g9vdgissi0p"; + meta.description = "Spawning sub-processes"; + buildInputs = [ ppx_expect ]; + }; + + splay_tree = janePackage { + pname = "splay_tree"; + hash = "1jxfh7f2hjrms5pm2cy1cf6ivphgiqqvyyr9hdcz8d3vi612p4dm"; + meta.description = "A splay tree implementation"; + propagatedBuildInputs = [ core_kernel ]; + }; + + splittable_random = janePackage { + pname = "splittable_random"; + hash = "0ap5z4z1aagz4z02q9642cbl25jzws9lbc2x5xkpyjlc0qcm9v3m"; + meta.description = "PRNG that can be split into independent streams"; + propagatedBuildInputs = [ base ppx_assert ppx_bench ppx_sexp_message ]; + }; + + stdio = janePackage { + pname = "stdio"; + hash = "0g00b00kpjcadikq2asng35w7kvd24q9ldkiylwmn3gv3lrbipa8"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Standard IO library for OCaml"; + propagatedBuildInputs = [ base ]; + }; + + textutils = janePackage { + pname = "textutils"; + hash = "1wass49h645wql9b7nck2iqlkf4648dkxvlvxixr7z80zcnb5rxr"; + meta.description = "Text output utilities"; + propagatedBuildInputs = [ core_unix textutils_kernel ]; + }; + + textutils_kernel = janePackage { + pname = "textutils_kernel"; + hash = "068g11d98wsb5a6ds0p5xybdmx5nx9bxa0k11dmh3l57kn4c169x"; + meta.description = "Text output utilities"; + propagatedBuildInputs = [ core ppx_jane uutf ]; + }; + + time_now = janePackage { + pname = "time_now"; + hash = "1pa0hyh470j9jylii4983qagb6hq2dz6s0q2fnrcph9qbw83bc0c"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Reports the current time"; + buildInputs = [ jst-config ppx_optcomp ]; + propagatedBuildInputs = [ jane-street-headers base ppx_base ]; + }; + + timezone = janePackage { + pname = "timezone"; + hash = "00a007aji5rbz42kgbq1w90py6fm9k9akycs5abkcfll5rd0cbhx"; + meta.description = "Time-zone handling"; + propagatedBuildInputs = [ core_kernel ]; + }; + + topological_sort = janePackage { + pname = "topological_sort"; + hash = "0iqhp8n6g5n1ng80brjpav54229lykm2c1fc104s58lk3rqfvj9v"; + meta.description = "Topological sort algorithm"; + propagatedBuildInputs = [ ppx_jane stdio ]; + }; + + typerep = janePackage { + pname = "typerep"; + hash = "1qxfi01qim0hrgd6d0bgvpxg36i99mmm8cw4wqpr9kxyqvgzv26z"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Typerep is a library for runtime types"; + propagatedBuildInputs = [ base ]; + }; + + variantslib = janePackage { + pname = "variantslib"; + hash = "033ns8ph6bd8g5cdfryjfcnrnzkdshppjyw5kl7cvszjfrz33ij7"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Part of Jane Street's Core library"; + propagatedBuildInputs = [ base ]; + }; + + vcaml = janePackage { + pname = "vcaml"; + hash = "12fd29x9dgf4f14xrx7z4y1bm1wbfynrs3jismjbiqnckfpbqrib"; + meta.description = "OCaml bindings for the Neovim API"; + propagatedBuildInputs = [ angstrom-async async_extra expect_test_helpers_async faraday ]; + }; + + virtual_dom = janePackage { + pname = "virtual_dom"; + hash = "15xia9v4ighzm0gv3vbqk9nvg47cvzqmfnl2zr67yxv4b98kyzv3"; + meta.description = "OCaml bindings for the virtual-dom library"; + buildInputs = [ js_of_ocaml-ppx ]; + propagatedBuildInputs = [ core_kernel gen_js_api js_of_ocaml lambdasoup tyxml ]; + }; + + zarith_stubs_js = janePackage { + pname = "zarith_stubs_js"; + hash = "119xgr3kla9q1bvs4a5z2ivbmsrz4db3a9z0gf77ryqg4i22ywvl"; + minimumOCamlVersion = "4.04.2"; + meta.description = "Javascripts stubs for the Zarith library"; + }; + + zstandard = janePackage { + pname = "zstandard"; + hash = "1blkv35g5q1drkc6zmc4m027gjz6vfdadra1kw1xkp1wlc2l4v3k"; + meta.description = "OCaml bindings to Zstandard"; + buildInputs = [ ppx_jane ]; + propagatedBuildInputs = [ core_kernel ctypes zstd ]; + }; + +} diff --git a/pkgs/development/ocaml-modules/janestreet/bonsai_jsoo_4_0.patch b/pkgs/development/ocaml-modules/janestreet/bonsai_jsoo_4_0.patch new file mode 100644 index 0000000000000..e658ba05ca4c0 --- /dev/null +++ b/pkgs/development/ocaml-modules/janestreet/bonsai_jsoo_4_0.patch @@ -0,0 +1,13 @@ +diff --git a/web_ui/element_size_hooks/visibility_tracker.ml b/web_ui/element_size_hooks/visibility_tracker.ml +index 2e5dbe0..61df433 100644 +--- a/web_ui/element_size_hooks/visibility_tracker.ml ++++ b/web_ui/element_size_hooks/visibility_tracker.ml +@@ -23,8 +23,6 @@ let get_conservative_vis_bounds (element : Dom_html.element Js.t) : Bounds.t opt + and client_height = client_bounds##.height + and window_height = Dom_html.window##.innerHeight + and window_width = Dom_html.window##.innerWidth in +- let%bind.Option window_height = Js.Optdef.to_option window_height in +- let%bind.Option window_width = Js.Optdef.to_option window_width in + let window_height = Float.of_int window_height + and window_width = Float.of_int window_width + and client_width = Js.Optdef.get client_width (Fn.const 0.0) diff --git a/pkgs/development/ocaml-modules/janestreet/janePackage_0_15.nix b/pkgs/development/ocaml-modules/janestreet/janePackage_0_15.nix new file mode 100644 index 0000000000000..678599089946d --- /dev/null +++ b/pkgs/development/ocaml-modules/janestreet/janePackage_0_15.nix @@ -0,0 +1,31 @@ +{ lib, fetchFromGitHub, buildDunePackage, defaultVersion ? "0.15.0" }: + +{ pname +, version ? defaultVersion +, hash +, minimumOCamlVersion ? "4.11" +, doCheck ? true +, buildInputs ? [] +, strictDeps ? true +, ...}@args: + +buildDunePackage (args // { + useDune2 = true; + inherit version buildInputs strictDeps; + + inherit minimumOCamlVersion; + + src = fetchFromGitHub { + owner = "janestreet"; + repo = pname; + rev = "v${version}"; + sha256 = hash; + }; + + inherit doCheck; + + meta = { + license = lib.licenses.mit; + homepage = "https://github.com/janestreet/${pname}"; + } // args.meta; +}) diff --git a/pkgs/development/ocaml-modules/janestreet/pythonlib.patch b/pkgs/development/ocaml-modules/janestreet/pythonlib.patch new file mode 100644 index 0000000000000..71a32fd0236c3 --- /dev/null +++ b/pkgs/development/ocaml-modules/janestreet/pythonlib.patch @@ -0,0 +1,22 @@ +diff --git a/src/type.ml b/src/type.ml +index 8a9e648..3f3b0e9 100644 +--- a/src/type.ml ++++ b/src/type.ml +@@ -31,12 +31,12 @@ let of_type_desc type_desc ~env = + | Tunivar _ -> Or_error.error_string "not handled: Tunivar" + | Tvariant _ -> Or_error.error_string "not handled: Tvariant" + | Tnil -> Or_error.error_string "not handled: Tnil" +- | Tobject (_, _) -> Or_error.error_string "not handled: Tobject" +- | Tfield (_, _, _, _) -> Or_error.error_string "not handled: Tfield" +- | Tpackage (_, _, _) -> Or_error.error_string "not handled: Tpackage" +- | Tpoly (_, _) -> Or_error.error_string "not handled: Tpoly" ++ | Tobject _ -> Or_error.error_string "not handled: Tobject" ++ | Tfield _ -> Or_error.error_string "not handled: Tfield" ++ | Tpackage _ -> Or_error.error_string "not handled: Tpackage" ++ | Tpoly _ -> Or_error.error_string "not handled: Tpoly" + | Tlink e -> walk e.desc +- | Tsubst e -> walk e.desc ++ | Tsubst (e, _) -> walk e.desc + | Ttuple es -> + let%bind tuple = List.map es ~f:(fun e -> walk e.desc) |> Or_error.all in + (match tuple with diff --git a/pkgs/development/ocaml-modules/phylogenetics/default.nix b/pkgs/development/ocaml-modules/phylogenetics/default.nix index 11da66bd76005..1cf9651e6ecc9 100644 --- a/pkgs/development/ocaml-modules/phylogenetics/default.nix +++ b/pkgs/development/ocaml-modules/phylogenetics/default.nix @@ -1,6 +1,6 @@ { lib , buildDunePackage -, fetchurl +, fetchFromGitHub , ppx_deriving , bppsuite , alcotest @@ -16,18 +16,15 @@ buildDunePackage rec { pname = "phylogenetics"; - version = "0.1.0"; + version = "unstable-2022-05-06"; - src = fetchurl { - url = "https://github.com/biocaml/phylogenetics/releases/download/v${version}/${pname}-${version}.tbz"; - sha256 = "sha256:064ldljzh17h8pp0c27xd1pf6c50yhccw2g3hddzhk07a95q8v16"; + src = fetchFromGitHub { + owner = "biocaml"; + repo = pname; + rev = "cd7c624d0f98e31b02933ca4511b9809b26d35b5"; + sha256 = "sha256:0w0xyah3hj05hxg1rsa40hhma3dm1cyq0zvnjrihhf22laxap7ga"; }; - # Ensure compatibility with printbox ≥ 0.6 - preConfigure = '' - substituteInPlace lib/dune --replace printbox printbox-text - ''; - minimalOCamlVersion = "4.08"; checkInputs = [ alcotest bppsuite ]; diff --git a/pkgs/development/ocaml-modules/tls/default.nix b/pkgs/development/ocaml-modules/tls/default.nix index 81f0a176bfc96..3f45aa919667b 100644 --- a/pkgs/development/ocaml-modules/tls/default.nix +++ b/pkgs/development/ocaml-modules/tls/default.nix @@ -6,11 +6,11 @@ buildDunePackage rec { pname = "tls"; - version = "0.15.2"; + version = "0.15.3"; src = fetchurl { - url = "https://github.com/mirleft/ocaml-tls/releases/download/v${version}/tls-v${version}.tbz"; - sha256 = "b76371757249bbeabb12c333de4ea2a09c095767bdbbc83322538c0da1fc1e36"; + url = "https://github.com/mirleft/ocaml-tls/releases/download/v${version}/tls-${version}.tbz"; + sha256 = "0nj6fhgrirn8ky4hb24m3ilhr41ynzgk6bqmjs17g8rdibwmdd2x"; }; minimumOCamlVersion = "4.08"; |