summary refs log tree commit diff
diff options
context:
space:
mode:
authorSylvain Fankhauser <sephi@fhtagn.top>2021-05-22 09:30:29 +0200
committerVincent Laporte <vbgl@users.noreply.github.com>2021-07-23 10:32:12 +0200
commit463a41b8684b3e38a3684f25a3acd58345eb3fc3 (patch)
treeb5361afbd9a22ea6802f6bf0e9636c968b09c93b
parenta38751eb697dd65211dfa0f6cb0d5ed81c09c38d (diff)
downloadnixpkgs-463a41b8684b3e38a3684f25a3acd58345eb3fc3.tar
nixpkgs-463a41b8684b3e38a3684f25a3acd58345eb3fc3.tar.gz
nixpkgs-463a41b8684b3e38a3684f25a3acd58345eb3fc3.tar.bz2
nixpkgs-463a41b8684b3e38a3684f25a3acd58345eb3fc3.tar.lz
nixpkgs-463a41b8684b3e38a3684f25a3acd58345eb3fc3.tar.xz
nixpkgs-463a41b8684b3e38a3684f25a3acd58345eb3fc3.tar.zst
nixpkgs-463a41b8684b3e38a3684f25a3acd58345eb3fc3.zip
comby: init at 1.5.1
-rw-r--r--pkgs/development/ocaml-modules/hack_parallel/default.nix26
-rw-r--r--pkgs/development/ocaml-modules/mparser/pcre.nix2
-rw-r--r--pkgs/development/tools/comby/default.nix77
-rw-r--r--pkgs/top-level/all-packages.nix2
-rw-r--r--pkgs/top-level/ocaml-packages.nix2
5 files changed, 108 insertions, 1 deletions
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 { };