diff --git a/pkgs/development/ocaml-modules/atdgen/codec-runtime.nix b/pkgs/development/ocaml-modules/atdgen/codec-runtime.nix index a2f3b32b7fcc..6dce840e914c 100644 --- a/pkgs/development/ocaml-modules/atdgen/codec-runtime.nix +++ b/pkgs/development/ocaml-modules/atdgen/codec-runtime.nix @@ -2,11 +2,11 @@ buildDunePackage rec { pname = "atdgen-codec-runtime"; - version = "2.9.1"; + version = "2.10.0"; src = fetchurl { url = "https://github.com/ahrefs/atd/releases/download/${version}/atdts-${version}.tbz"; - sha256 = "sha256-OdwaUR0Ix0Oz8NDm36nIyvIRzF+r/pKgiej1fhcOmuQ="; + sha256 = "sha256-d9J0CaTp2sQbnKLp6mCDbGwYAIsioVer7ftaLSSFCZg="; }; meta = { diff --git a/pkgs/development/ocaml-modules/atdgen/runtime.nix b/pkgs/development/ocaml-modules/atdgen/runtime.nix index 0fc98a1f66be..0006e8613c58 100644 --- a/pkgs/development/ocaml-modules/atdgen/runtime.nix +++ b/pkgs/development/ocaml-modules/atdgen/runtime.nix @@ -1,4 +1,4 @@ -{ buildDunePackage, atdgen-codec-runtime, biniou, camlp-streams, yojson }: +{ buildDunePackage, atdgen-codec-runtime, biniou, yojson }: buildDunePackage rec { pname = "atdgen-runtime"; @@ -6,7 +6,7 @@ buildDunePackage rec { minimalOCamlVersion = "4.08"; - propagatedBuildInputs = [ biniou camlp-streams yojson ]; + propagatedBuildInputs = [ biniou yojson ]; meta = atdgen-codec-runtime.meta // { description = "Runtime library for code generated by atdgen"; diff --git a/pkgs/development/ocaml-modules/elpi/atd_2_10.patch b/pkgs/development/ocaml-modules/elpi/atd_2_10.patch new file mode 100644 index 000000000000..3f341a3fa4b4 --- /dev/null +++ b/pkgs/development/ocaml-modules/elpi/atd_2_10.patch @@ -0,0 +1,13 @@ +diff --git a/src/elpi_trace_elaborator.ml b/src/elpi_trace_elaborator.ml +index ca13114d..093e7593 100644 +--- a/src/elpi_trace_elaborator.ml ++++ b/src/elpi_trace_elaborator.ml +@@ -664,6 +664,6 @@ let main = + + let cards = Trace.cards steps ~stack_frames ~aggregated_goal_success ~goal_text ~goal_attempts in + +- let ob = Bi_outbuf.create_channel_writer stdout in ++ let ob = Buffer.create 17 in + write_trace ob cards; +- Bi_outbuf.flush_channel_writer ob ++ Buffer.output_buffer stdout ob diff --git a/pkgs/development/ocaml-modules/elpi/default.nix b/pkgs/development/ocaml-modules/elpi/default.nix index b9a81a6c9d9c..428e42682329 100644 --- a/pkgs/development/ocaml-modules/elpi/default.nix +++ b/pkgs/development/ocaml-modules/elpi/default.nix @@ -31,6 +31,9 @@ buildDunePackage rec { pname = "elpi"; inherit (fetched) version src; + patches = lib.optional (versionAtLeast version "1.16" || version == "dev") + ./atd_2_10.patch; + minimalOCamlVersion = "4.04"; buildInputs = [ perl ncurses ] diff --git a/pkgs/development/ocaml-modules/yojson/default.nix b/pkgs/development/ocaml-modules/yojson/default.nix index 03b01c437766..38960dceb5e3 100644 --- a/pkgs/development/ocaml-modules/yojson/default.nix +++ b/pkgs/development/ocaml-modules/yojson/default.nix @@ -1,17 +1,16 @@ -{ lib, fetchurl, buildDunePackage, cppo, easy-format, biniou }: +{ lib, fetchurl, buildDunePackage, cppo, seq }: buildDunePackage rec { pname = "yojson"; - version = "1.7.0"; - useDune2 = true; + version = "2.0.2"; src = fetchurl { url = "https://github.com/ocaml-community/yojson/releases/download/${version}/yojson-${version}.tbz"; - sha256 = "1iich6323npvvs8r50lkr4pxxqm9mf6w67cnid7jg1j1g5gwcvv5"; + sha256 = "sha256-h2u284r3OoSilDij2jXkhXxgoUVWpgZSWxSMb9vlRhs="; }; nativeBuildInputs = [ cppo ]; - propagatedBuildInputs = [ easy-format biniou ]; + propagatedBuildInputs = [ seq ]; meta = with lib; { description = "An optimized parsing and printing library for the JSON format"; diff --git a/pkgs/development/tools/ocaml/merlin/4.x.nix b/pkgs/development/tools/ocaml/merlin/4.x.nix index b5100afee984..e917a5a76da6 100644 --- a/pkgs/development/tools/ocaml/merlin/4.x.nix +++ b/pkgs/development/tools/ocaml/merlin/4.x.nix @@ -6,7 +6,7 @@ , buildDunePackage , yojson , csexp -, result +, merlin-lib , dot-merlin-reader , jq , menhir @@ -15,13 +15,12 @@ }: let - merlinVersion = "4.5"; + merlinVersion = "4.6"; hashes = { - "4.5-411" = "sha256:05nz6y7r91rh0lj8b6xdv3s3yknmvjc7y60v17kszgqnr887bvpn"; - "4.5-412" = "sha256:0i5c3rfzinmwdjya7gv94zyknsm32qx9dlg472xpfqivwvnnhf1z"; - "4.5-413" = "sha256:1sphq9anfg1qzrvj7hdcqflj6cmc1qiyfkljhng9fxnnr0i7550s"; - "4.5-414" = "sha256:13h588kwih05zd9p3p7q528q4zc0d1l983kkvbmkxgay5d17nn1i"; + "4.6-412" = "sha256-isiurLeWminJQQR4oHpJPCzVk6cEmtQdX4+n3Pdka5c="; + "4.6-413" = "sha256-8903H4TE6F/v2Kw1XpcpdXEiLIdb9llYgt42zSR9kO4="; + "4.6-414" = "sha256-AuvXCjx32JQBY9vkxAd0pEjtFF6oTgrT1f9TJEEDk84="; }; ocamlVersionShorthand = lib.concatStrings @@ -49,12 +48,7 @@ buildDunePackage { dot_merlin_reader = "${dot-merlin-reader}/bin/dot-merlin-reader"; dune = "${dune_2}/bin/dune"; }) - ] ++ lib.optional (lib.versionOlder ocaml.version "4.12") - # This fixes the test-suite on macOS - # See https://github.com/ocaml/merlin/pull/1399 - # Fixed in 4.4 for OCaml ≥ 4.12 - ./test.patch - ; + ]; strictDeps = true; @@ -65,8 +59,9 @@ buildDunePackage { buildInputs = [ dot-merlin-reader yojson - csexp - result + (if lib.versionAtLeast version "4.6-414" + then merlin-lib + else csexp) menhirSdk menhirLib ]; diff --git a/pkgs/development/tools/ocaml/merlin/default.nix b/pkgs/development/tools/ocaml/merlin/default.nix index 3db5d1377831..cff881d1c97e 100644 --- a/pkgs/development/tools/ocaml/merlin/default.nix +++ b/pkgs/development/tools/ocaml/merlin/default.nix @@ -3,16 +3,14 @@ buildDunePackage rec { pname = "merlin"; - version = "3.4.2"; + version = "3.8.0"; src = fetchurl { - url = "https://github.com/ocaml/merlin/releases/download/v${version}/merlin-v${version}.tbz"; - sha256 = "e1b7b897b11119d92995c558530149fd07bd67a4aaf140f55f3c4ffb5e882a81"; + url = "https://github.com/ocaml/merlin/releases/download/v${version}/merlin-${version}.tbz"; + sha256 = "sha256-wmBGNwXL3BduF4o1sUXtAOUHJ4xmMvsWAxl/QdNj/28="; }; - useDune2 = true; - - minimumOCamlVersion = "4.02.3"; + minimalOCamlVersion = "4.02.3"; patches = [ (substituteAll { diff --git a/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix b/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix index 894fe6f75ae9..e3fef3f4cc40 100644 --- a/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix +++ b/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix @@ -1,19 +1,15 @@ -{ lib, fetchurl, yojson, csexp, result, buildDunePackage }: +{ lib, fetchurl, yojson, csexp, buildDunePackage, merlin-lib, merlin }: buildDunePackage rec { pname = "dot-merlin-reader"; - version = "4.1"; - useDune2 = true; + inherit (merlin) version src; - minimumOCamlVersion = "4.06"; + minimalOCamlVersion = "4.06"; - src = fetchurl { - url = "https://github.com/ocaml/merlin/releases/download/v${version}/dot-merlin-reader-v${version}.tbz"; - sha256 = "14a36d6fb8646a5df4530420a7861722f1a4ee04753717947305e3676031e7cd"; - }; - - buildInputs = [ yojson csexp result ]; + buildInputs = if lib.versionAtLeast version "4.6-414" + then [ merlin-lib ] + else [ yojson csexp ]; meta = with lib; { description = "Reads config files for merlin"; diff --git a/pkgs/development/tools/ocaml/merlin/lib.nix b/pkgs/development/tools/ocaml/merlin/lib.nix new file mode 100644 index 000000000000..27c8035a5e3b --- /dev/null +++ b/pkgs/development/tools/ocaml/merlin/lib.nix @@ -0,0 +1,14 @@ +{ lib, buildDunePackage, merlin, csexp }: + +buildDunePackage { + pname = "merlin-lib"; + inherit (merlin) version src; + + minimalOCamlVersion = "4.14"; + + propagatedBuildInputs = [ csexp ]; + + meta = merlin.meta // { + description = "Merlin’s libraries"; + }; +} diff --git a/pkgs/development/tools/ocaml/merlin/test.patch b/pkgs/development/tools/ocaml/merlin/test.patch deleted file mode 100644 index 0101e825b967..000000000000 --- a/pkgs/development/tools/ocaml/merlin/test.patch +++ /dev/null @@ -1,19 +0,0 @@ -commit 282eed37f39ff216add8d53766fd59f3737eb87f -Author: Vincent Laporte -Date: Thu Nov 4 06:24:07 2021 +0100 - - Ignore dune stderr in tests - -diff --git a/tests/test-dirs/document/src-documentation.t/run.t b/tests/test-dirs/document/src-documentation.t/run.t -index 2c9e1419..4f4c4327 100644 ---- a/tests/test-dirs/document/src-documentation.t/run.t -+++ b/tests/test-dirs/document/src-documentation.t/run.t -@@ -42,7 +42,7 @@ documentation for the non-last defined value (in the same file) is show - > jq '.value' - " List reversal. " - -- $ dune build --root=. ./doc.exe -+ $ dune build --root=. ./doc.exe 2> /dev/null - $ cat >.merlin < B _build/default/.doc.eobjs/byte - > S . diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 697459fb317f..a4302879c415 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -787,12 +787,14 @@ let menhirSdk = callPackage ../development/ocaml-modules/menhir/sdk.nix { }; merlin = - if lib.versionAtLeast ocaml.version "4.11" + if lib.versionAtLeast ocaml.version "4.12" then callPackage ../development/tools/ocaml/merlin/4.x.nix { } else callPackage ../development/tools/ocaml/merlin { }; merlin-extend = callPackage ../development/ocaml-modules/merlin-extend { }; + merlin-lib = callPackage ../development/tools/ocaml/merlin/lib.nix { }; + dot-merlin-reader = callPackage ../development/tools/ocaml/merlin/dot-merlin-reader.nix { }; metrics = callPackage ../development/ocaml-modules/metrics { };