diff options
author | Aaron L. Zeng <me@bcc32.com> | 2022-05-23 01:18:37 -0400 |
---|---|---|
committer | Aaron L. Zeng <me@bcc32.com> | 2022-07-07 00:32:11 -0400 |
commit | 4f6ddfdd23f0c3571af65465c8937b2640f988ff (patch) | |
tree | 7b5c2d29211f7686b3aa1849bed8263b30e7b456 | |
parent | 99b11e4c97dc686a823f8bc5aeac32a90dd7891b (diff) |
Add Jane Street ocaml packages version 0.15
- ocamlPackages.tls*: 0.15.2 -> 0.15.3
- ocamlPackages.bistro: unstable-2021-11-13 -> unstable-2022-05-07
- ocamlPackages.phylogenetics: 0.1.0 -> unstable-2022-05-06
22 files changed, 2389 insertions, 32 deletions
diff --git a/pkgs/development/compilers/ligo/default.nix b/pkgs/development/compilers/ligo/default.nix index 36ec5bba2e20..ab61043048af 100644 --- a/pkgs/development/compilers/ligo/default.nix +++ b/pkgs/development/compilers/ligo/default.nix @@ -46,6 +46,7 @@ coq.ocamlPackages.buildDunePackage rec { yojson getopt core + core_unix pprint linenoise @@ -83,6 +84,8 @@ coq.ocamlPackages.buildDunePackage rec { doCheck = false; # Tests fail, but could not determine the reason + patches = [ ./ligo.patch ]; # fix for core >= 0.15.0 + meta = with lib; { homepage = "https://ligolang.org/"; downloadPage = "https://ligolang.org/docs/intro/installation"; diff --git a/pkgs/development/compilers/ligo/ligo.patch b/pkgs/development/compilers/ligo/ligo.patch new file mode 100644 index 000000000000..1a076cf18cee --- /dev/null +++ b/pkgs/development/compilers/ligo/ligo.patch @@ -0,0 +1,134 @@ +diff --git a/ligo.opam b/ligo.opam +index d561c74d1..3a8d34feb 100644 +--- a/ligo.opam ++++ b/ligo.opam +@@ -10,7 +10,9 @@ license: "MIT" + # If you change the dependencies, run `opam lock` in the root + depends: [ + # Jane Street Core +- "core" ++ "core" { >= "v0.14.0" & < "v0.16.0" } ++ "core_kernel" { >= "v0.14.0" & "v0.16.0" } ++ "core_unix" { >= "v0.14.0" & "v0.16.0" } + # Tooling + "odoc" { build } + "ocamlfind" { build } +diff --git a/ligo.opam.locked b/ligo.opam.locked +index b4501cc76..c8ed8a41f 100644 +--- a/ligo.opam.locked ++++ b/ligo.opam.locked +@@ -50,8 +50,9 @@ depends: [ + "conf-rust" {= "0.1"} + "conf-which" {= "1"} + "coq" {= "8.13.2"} +- "core" {= "v0.14.1"} +- "core_kernel" {= "v0.14.2"} ++ "core" {= "v0.15.0"} ++ "core_kernel" {= "v0.15.0"} ++ "core_unix" {= "v0.15.0"} + "cppo" {= "1.6.8"} + "csexp" {= "1.5.1"} + "cstruct" {= "6.0.1"} +diff --git a/src/bin/cli.ml b/src/bin/cli.ml +index a6fc13e0d..ef5177868 100644 +--- a/src/bin/cli.ml ++++ b/src/bin/cli.ml +@@ -12,7 +12,7 @@ let entry_point = + let source_file = + let name = "SOURCE_FILE" in + let _doc = "the path to the smart contract file." in +- Command.Param.(anon (name %: Filename.arg_type)) ++ Command.Param.(anon (name %: Filename_unix.arg_type)) + + let package_name = + let name = "PACKAGE_NAME" in +@@ -662,7 +662,7 @@ let main = Command.group ~preserve_subcommand_order:() ~summary:"the LigoLANG co + ] + + let run ?argv () = +- Command.run ~version:Version.version ?argv main; ++ Command_unix.run ~version:Version.version ?argv main; + (* Effect to error code *) + match !return with + Done -> 0; +@@ -677,4 +677,3 @@ let run ?argv () = + match exn with + | Failure msg -> message msg + | exn -> message (Exn.to_string exn) +- +diff --git a/src/bin/cli_helpers.ml b/src/bin/cli_helpers.ml +index b64a17d53..8c4c43dde 100644 +--- a/src/bin/cli_helpers.ml ++++ b/src/bin/cli_helpers.ml +@@ -66,7 +66,7 @@ let run_command (cmd : command) = + (fun p -> Lwt.map + (fun status -> + match status with +- Caml.Unix.WEXITED 0 -> Ok () ++ Caml_unix.WEXITED 0 -> Ok () + | _ -> Error ("unknown error")) + p#status) in + Lwt_main.run status +\ No newline at end of file +diff --git a/src/bin/dune b/src/bin/dune +index 295c056f3..08d980439 100644 +--- a/src/bin/dune ++++ b/src/bin/dune +@@ -11,7 +11,9 @@ + repl + install + cli_helpers +- ligo_api) ++ ligo_api ++ core_unix.command_unix ++ core_unix.filename_unix) + (modules cli version)) + + (library +diff --git a/src/main/interpreter/dune b/src/main/interpreter/dune +index c55e24a88..f9762a297 100644 +--- a/src/main/interpreter/dune ++++ b/src/main/interpreter/dune +@@ -4,4 +4,4 @@ + (instrumentation + (backend bisect_ppx)) + (libraries tezos-011-PtHangz2-test-helpers ast_aggregated ligo_interpreter +- main_errors ligo_compile build fuzz ligo_run self_ast_typed)) ++ main_errors ligo_compile build fuzz ligo_run self_ast_typed core_unix.sys_unix)) +diff --git a/src/main/interpreter/interpreter.ml b/src/main/interpreter/interpreter.ml +index b0379029c..530e08c3a 100644 +--- a/src/main/interpreter/interpreter.ml ++++ b/src/main/interpreter/interpreter.ml +@@ -2,6 +2,7 @@ open Simple_utils.Trace + open Simple_utils + open Ligo_interpreter.Types + open Ligo_interpreter.Combinators ++module Sys = Sys_unix + + module AST = Ast_aggregated + +diff --git a/vendors/ligo-utils/simple-utils/dune b/vendors/ligo-utils/simple-utils/dune +index ca9f2bf5c..62c39087b 100644 +--- a/vendors/ligo-utils/simple-utils/dune ++++ b/vendors/ligo-utils/simple-utils/dune +@@ -6,6 +6,7 @@ + (libraries + ;; Third party + core ++ core_kernel.caml_unix + yojson + result + unix +diff --git a/vendors/ligo-utils/simple-utils/snippet.ml b/vendors/ligo-utils/simple-utils/snippet.ml +index 658f115f2..f23000590 100644 +--- a/vendors/ligo-utils/simple-utils/snippet.ml ++++ b/vendors/ligo-utils/simple-utils/snippet.ml +@@ -1,7 +1,7 @@ + (* used to show code snippets in error messages *) + + let print_code ppf (l:Region.t) (input_line: unit -> string) = +- let dumb =String.equal (Caml.Unix.getenv "TERM") "dumb" in ++ let dumb =String.equal (Caml_unix.getenv "TERM") "dumb" in + let start = l#start#line in + let start_column = l#start#offset `Byte in + let stop = l#stop#line in diff --git a/pkgs/development/ocaml-modules/bap/default.nix b/pkgs/development/ocaml-modules/bap/default.nix index 4f87715a74ad..eaaf621900ad 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 596ed6161d7b..b82ec7361791 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 348d1bb97d47..43cbd33f738c 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 060d2c6fb6a8..50c008bf60d8 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 666eb684925c..05b085f92aca 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 122ee2149f3a..8d1414731f13 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 000000000000..174803a34818 --- /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 000000000000..bc2f2f24e0a9 --- /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 = "i |