about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Raskin <7c6f434c@mail.ru>2017-05-01 11:20:50 +0200
committerGitHub <noreply@github.com>2017-05-01 11:20:50 +0200
commitb3e69c08ee152d9dc27e3e819aa6e00235993e3d (patch)
tree7faef50e0552cd9ca0f6ad35217fd40a12af885e
parentd7cb79a1efc835a9c9a49e0950a5205ffb5ecb75 (diff)
parent2770be5d5e2d47bbd4f7b0eb41809cd8c97b9884 (diff)
downloadnixlib-b3e69c08ee152d9dc27e3e819aa6e00235993e3d.tar
nixlib-b3e69c08ee152d9dc27e3e819aa6e00235993e3d.tar.gz
nixlib-b3e69c08ee152d9dc27e3e819aa6e00235993e3d.tar.bz2
nixlib-b3e69c08ee152d9dc27e3e819aa6e00235993e3d.tar.lz
nixlib-b3e69c08ee152d9dc27e3e819aa6e00235993e3d.tar.xz
nixlib-b3e69c08ee152d9dc27e3e819aa6e00235993e3d.tar.zst
nixlib-b3e69c08ee152d9dc27e3e819aa6e00235993e3d.zip
Merge pull request #24742 from volth/reason-1.13.3-master
reason: init at 1.13.3
-rw-r--r--pkgs/development/compilers/reason/default.nix57
-rw-r--r--pkgs/development/ocaml-modules/merlin_extend/default.nix26
-rw-r--r--pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ppx_tools_versioned/default.nix26
-rw-r--r--pkgs/development/tools/ocaml/utop/default.nix12
-rw-r--r--pkgs/top-level/all-packages.nix2
-rw-r--r--pkgs/top-level/ocaml-packages.nix6
7 files changed, 125 insertions, 8 deletions
diff --git a/pkgs/development/compilers/reason/default.nix b/pkgs/development/compilers/reason/default.nix
new file mode 100644
index 000000000000..7bd4750551f3
--- /dev/null
+++ b/pkgs/development/compilers/reason/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, makeWrapper, buildOcaml, fetchFromGitHub,
+  ocaml, opam, topkg, menhir, merlin_extend, ppx_tools_versioned, utop }:
+
+let 
+  version = "1.13.4";
+  src = fetchFromGitHub {
+    owner = "facebook";
+    repo = "reason";
+    rev = version;
+    sha256 = "03r2ciikgwaq1dkzgzc8n7h7y0q95ajh6n9bb2n5bpgfhwkr1wqi";
+  };
+  meta = with stdenv.lib; {
+    homepage = https://facebook.github.io/reason/;
+    description = "Facebook's friendly syntax to OCaml";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.volth ];
+  };
+
+  reason-parser = buildOcaml {
+    name = "reason-parser";
+    inherit version src meta;
+    sourceRoot = "reason-${version}-src/reason-parser";
+
+    minimumSupportedOcamlVersion = "4.02";
+
+    propagatedBuildInputs = [ menhir merlin_extend ppx_tools_versioned ];
+    buildInputs = [ opam topkg ];
+
+    createFindlibDestdir = true;
+
+    inherit (topkg) installPhase;
+  };
+in
+buildOcaml {
+  name = "reason";
+  inherit version src meta;
+
+  buildInputs = [ makeWrapper opam topkg reason-parser utop ];
+
+  buildFlags = [ "build" ]; # do not "make tests" before reason lib is installed
+
+  createFindlibDestdir = true;
+
+  postPatch = ''
+    substituteInPlace src/reasonbuild.ml --replace "refmt --print binary" "$out/bin/refmt --print binary"
+  '';
+
+  installPhase = ''
+    ${topkg.installPhase}
+
+    wrapProgram $out/bin/reup \
+      --prefix PATH : "${opam}/bin"
+    wrapProgram $out/bin/rtop \
+      --prefix PATH : "${utop}/bin" \
+      --set OCAMLPATH $out/lib/ocaml/${ocaml.version}/site-lib:$OCAMLPATH
+  '';
+}
diff --git a/pkgs/development/ocaml-modules/merlin_extend/default.nix b/pkgs/development/ocaml-modules/merlin_extend/default.nix
new file mode 100644
index 000000000000..79b8b69bbb57
--- /dev/null
+++ b/pkgs/development/ocaml-modules/merlin_extend/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildOcaml, fetchFromGitHub, cppo }:
+
+buildOcaml rec {
+  name = "merlin_extend";
+  version = "0.3";
+
+  minimumSupportedOcamlVersion = "4.02";
+
+  src = fetchFromGitHub {
+    owner = "let-def";
+    repo = "merlin-extend";
+    sha256 = "1z6hybcb7ry0bkzjd0r2dlcgjnhhxdsr06x3h03sj7h5fihsc7vd";
+    rev = "v${version}";
+  };
+
+  buildInputs = [ cppo ];
+
+  createFindlibDestdir = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/let-def/merlin-extend;
+    description = "SDK to extend Merlin";
+    license = licenses.mit;
+    maintainers = [ maintainers.volth ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix b/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix
index 3694dd2d6abc..a056cdeb1b5e 100644
--- a/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
    name = "ocaml${ocaml.version}-ocaml-migrate-parsetree-${version}";
-   version = "0.5";
+   version = "0.7";
 
    src = fetchFromGitHub {
      owner = "let-def";
      repo = "ocaml-migrate-parsetree";
      rev = "v${version}";
-     sha256 = "023lnd3kxa3d4zgsvv0z2lyzhg05zcgagy18vaalimbza57wq83h";
+     sha256 = "142svvixhz153argd3khk7sr38dhiy4w6sck4766f8b48p41pp3m";
    };
 
    buildInputs = [ ocaml findlib ocamlbuild jbuilder ];
diff --git a/pkgs/development/ocaml-modules/ppx_tools_versioned/default.nix b/pkgs/development/ocaml-modules/ppx_tools_versioned/default.nix
new file mode 100644
index 000000000000..c402c6be4f1b
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ppx_tools_versioned/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildOcaml, fetchFromGitHub, ocaml-migrate-parsetree }:
+
+buildOcaml rec {
+  name = "ppx_tools_versioned";
+  version = "5.0alpha";
+
+  minimumSupportedOcamlVersion = "4.02";
+
+  src = fetchFromGitHub {
+    owner = "let-def";
+    repo = "ppx_tools_versioned";
+    rev = version;
+    sha256 = "0sa3w0plpa0s202s9yjgz7dbk32xd2s6fymkjijrhj4lkvh08mba";
+  };
+
+  propagatedBuildInputs = [ ocaml-migrate-parsetree ];
+
+  createFindlibDestdir = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/let-def/ppx_tools_versioned;
+    description = "Tools for authors of syntactic tools (such as ppx rewriters)";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.volth ];
+  };
+}
diff --git a/pkgs/development/tools/ocaml/utop/default.nix b/pkgs/development/tools/ocaml/utop/default.nix
index 31549729cfe7..448386866493 100644
--- a/pkgs/development/tools/ocaml/utop/default.nix
+++ b/pkgs/development/tools/ocaml/utop/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, ocaml, findlib, ocamlbuild, camlp4, ocaml_react
-, lambdaTerm, ocaml_lwt, makeWrapper, camomile, zed, cppo, ppx_tools
+{ stdenv, fetchurl, bash, ocaml, findlib, ocamlbuild, camlp4, ocaml_react
+, lambdaTerm, ocaml_lwt, camomile, zed, cppo, ppx_tools
 }:
 
 stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "16z02vp9n97iax4fqpbi7v86r75vbabxvnd1rirh8w2miixs1g4x";
   };
 
-  buildInputs = [ ocaml findlib ocamlbuild makeWrapper cppo camlp4 ppx_tools ];
+  buildInputs = [ ocaml findlib ocamlbuild cppo camlp4 ppx_tools ];
 
   propagatedBuildInputs = [ lambdaTerm ocaml_lwt ];
 
@@ -35,9 +35,9 @@ stdenv.mkDerivation rec {
    do
     mv $prog .$prog-wrapped
     cat > $prog <<EOF
-#!/bin/sh
-export CAML_LD_LIBRARY_PATH=${p ocaml_lwt}/lwt:${p lambdaTerm}/lambda-term:'\$CAML_LD_LIBRARY_PATH'
-export OCAMLPATH=${p ocaml_lwt}:${p ocaml_react}:${p camomile}:${p zed}:${p lambdaTerm}:"$out"/lib/ocaml/${ocaml.version}/site-lib:'\$OCAMLPATH'
+#!${bash}/bin/bash -e
+export CAML_LD_LIBRARY_PATH="${p ocaml_lwt}/lwt:${p lambdaTerm}/lambda-term:\$CAML_LD_LIBRARY_PATH"
+export OCAMLPATH="${p ocaml_lwt}:${p ocaml_react}:${p camomile}:${p zed}:${p lambdaTerm}:"$out"/lib/ocaml/${ocaml.version}/site-lib:\$OCAMLPATH"
 ${ocaml}/bin/ocamlrun $out/bin/.$prog-wrapped \$*
 EOF
     chmod +x $prog
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index ad198ec373cd..d8071b570197 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6153,6 +6153,8 @@ with pkgs;
 
   regina = callPackage ../development/interpreters/regina { };
 
+  inherit (ocamlPackages) reason;
+
   renpy = callPackage ../development/interpreters/renpy {
     ffmpeg = ffmpeg_2;
   };
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index cf2b676a5d4f..d330de0f267f 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -289,6 +289,8 @@ let
 
     merlin = callPackage ../development/tools/ocaml/merlin { };
 
+    merlin_extend = callPackage ../development/ocaml-modules/merlin_extend { };
+
     mezzo = callPackage ../development/compilers/mezzo { };
 
     mlgmp =  callPackage ../development/ocaml-modules/mlgmp { };
@@ -499,6 +501,8 @@ let
       then callPackage ../development/ocaml-modules/ppx_tools {}
       else null;
 
+    ppx_tools_versioned = callPackage ../development/ocaml-modules/ppx_tools_versioned { };
+
     pycaml = callPackage ../development/ocaml-modules/pycaml { };
 
     qcheck = callPackage ../development/ocaml-modules/qcheck {
@@ -509,6 +513,8 @@ let
 
     re = callPackage ../development/ocaml-modules/re { };
 
+    reason = callPackage ../development/compilers/reason { };
+
     rresult = callPackage ../development/ocaml-modules/rresult { };
 
     safepass = callPackage ../development/ocaml-modules/safepass { };