diff --git a/pkgs/development/ocaml-modules/hack_parallel/default.nix b/pkgs/development/ocaml-modules/hack_parallel/default.nix new file mode 100644 index 00000000000..f9bc6777212 --- /dev/null +++ b/pkgs/development/ocaml-modules/hack_parallel/default.nix @@ -0,0 +1,26 @@ +{ lib, fetchFromGitHub, buildDunePackage, core, core_kernel, pkg-config, sqlite +}: +buildDunePackage rec { + pname = "hack_parallel"; + version = "1.0.1"; + useDune2 = true; + minimumOcamlVersion = "4.04.1"; + + src = fetchFromGitHub { + owner = "rvantonder"; + repo = "hack_parallel"; + rev = version; + sha256 = "0qjlkw35r4q2cm0n2x0i73zvx1xgrp6axaia2nm8zxpm49mid629"; + }; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ core core_kernel sqlite ]; + + meta = { + description = + "Core parallel and shared memory library used by Hack, Flow, and Pyre"; + license = lib.licenses.mit; + homepage = "https://github.com/rvantonder/hack_parallel"; + }; +} diff --git a/pkgs/development/ocaml-modules/mparser/pcre.nix b/pkgs/development/ocaml-modules/mparser/pcre.nix index f2bdc41b8e2..0f26e140ed8 100644 --- a/pkgs/development/ocaml-modules/mparser/pcre.nix +++ b/pkgs/development/ocaml-modules/mparser/pcre.nix @@ -6,7 +6,7 @@ buildDunePackage rec { inherit (mparser) src version; - buildInputs = [ ocaml_pcre mparser ]; + propagatedBuildInputs = [ ocaml_pcre mparser ]; meta = mparser.meta // { description = "PCRE-based regular expressions"; }; } diff --git a/pkgs/development/tools/comby/default.nix b/pkgs/development/tools/comby/default.nix new file mode 100644 index 00000000000..ca0a2413304 --- /dev/null +++ b/pkgs/development/tools/comby/default.nix @@ -0,0 +1,77 @@ +{ ocamlPackages, fetchFromGitHub, lib, zlib, pkg-config, cacert, gmp, libev +, autoconf, sqlite, stdenv }: +let + mkCombyPackage = { pname, extraBuildInputs ? [ ], extraNativeInputs ? [ ] }: + ocamlPackages.buildDunePackage rec { + inherit pname; + version = "1.5.1"; + useDune2 = true; + minimumOcamlVersion = "4.08.1"; + doCheck = true; + + src = fetchFromGitHub { + owner = "comby-tools"; + repo = "comby"; + rev = version; + sha256 = "1ipfrr6n1jyyryhm9zpn8wwgzfac1zgbjdjzrm00qcwc17r8x2hf"; + }; + + nativeBuildInputs = [ + ocamlPackages.ppx_deriving + ocamlPackages.ppx_deriving_yojson + ocamlPackages.ppx_sexp_conv + ocamlPackages.ppx_sexp_message + ] ++ extraNativeInputs; + + buildInputs = [ + ocamlPackages.core + ocamlPackages.ocaml_pcre + ocamlPackages.mparser + ocamlPackages.mparser-pcre + ocamlPackages.angstrom + ] ++ extraBuildInputs; + + checkInputs = [ cacert ]; + + meta = { + description = "Tool for searching and changing code structure"; + license = lib.licenses.asl20; + homepage = "https://comby.dev"; + }; + }; + + combyKernel = mkCombyPackage { pname = "comby-kernel"; }; +in mkCombyPackage { + pname = "comby"; + + extraBuildInputs = [ + zlib + gmp + libev + sqlite + ocamlPackages.shell # This input must appear before `parany` or any other input that propagates `ocamlnet` + ocamlPackages.lwt + ocamlPackages.patience_diff + ocamlPackages.toml + ocamlPackages.cohttp-lwt-unix + ocamlPackages.opium + ocamlPackages.textutils + ocamlPackages.jst-config + ocamlPackages.parany + ocamlPackages.conduit-lwt-unix + ocamlPackages.lwt_react + ocamlPackages.tls + combyKernel + ] ++ (if !stdenv.isAarch32 && !stdenv.isAarch64 then + [ ocamlPackages.hack_parallel ] + else + [ ]); + + extraNativeInputs = [ + autoconf + pkg-config + ocamlPackages.ppx_jane + ocamlPackages.ppx_expect + ocamlPackages.dune-configurator + ]; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a53bfe32d5a..6663c0a2e22 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10754,6 +10754,8 @@ in cmucl_binary = pkgsi686Linux.callPackage ../development/compilers/cmucl/binary.nix { }; + comby = callPackage ../development/tools/comby { }; + compcert = coqPackages.compcert.override { version = "3.9"; }; computecpp-unwrapped = callPackage ../development/compilers/computecpp {}; diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index d317f091990..e8adc826fdd 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -415,6 +415,8 @@ let h2 = callPackage ../development/ocaml-modules/h2 { }; + hack_parallel = callPackage ../development/ocaml-modules/hack_parallel { }; + hacl_x25519 = callPackage ../development/ocaml-modules/hacl_x25519 { }; hacl-star = callPackage ../development/ocaml-modules/hacl-star { };