From 46e0a4ba87c483ee6e4e77aa9d320875d7843184 Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Mon, 22 Aug 2022 11:26:52 +0200 Subject: [PATCH 01/30] Add case for one extension inside switch --- src/reason-parser/reason_parser_explain.ml | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/reason-parser/reason_parser_explain.ml b/src/reason-parser/reason_parser_explain.ml index b3f25024c..ef1890730 100644 --- a/src/reason-parser/reason_parser_explain.ml +++ b/src/reason-parser/reason_parser_explain.ml @@ -1,7 +1,5 @@ (* See the comments in menhir_error_processor.ml *) -open Reason_string - module Parser = Reason_parser module Interp = Parser.MenhirInterpreter module Raw = Reason_parser_explain_raw From b1e8d4fdbd4bd36882a1b9abb68aa1bc925992c4 Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Mon, 22 Aug 2022 11:27:23 +0200 Subject: [PATCH 02/30] Remove unused Reason_string file --- src/reason-parser/reason_parser.mly | 1 - src/reason-parser/reason_string.ml | 3 --- src/refmt/reason_implementation_printer.ml | 2 -- 3 files changed, 6 deletions(-) delete mode 100644 src/reason-parser/reason_string.ml diff --git a/src/reason-parser/reason_parser.mly b/src/reason-parser/reason_parser.mly index a6024959c..aa98fd8d1 100644 --- a/src/reason-parser/reason_parser.mly +++ b/src/reason-parser/reason_parser.mly @@ -58,7 +58,6 @@ open Parsetree open Ast_helper open Ast_mapper open Reason_parser_def -open Reason_string open Reason_errors let raise_error error loc = diff --git a/src/reason-parser/reason_string.ml b/src/reason-parser/reason_string.ml deleted file mode 100644 index 58e10aa39..000000000 --- a/src/reason-parser/reason_string.ml +++ /dev/null @@ -1,3 +0,0 @@ -module String = struct - include String -end diff --git a/src/refmt/reason_implementation_printer.ml b/src/refmt/reason_implementation_printer.ml index 3acef3a14..8f49f8a07 100644 --- a/src/refmt/reason_implementation_printer.ml +++ b/src/refmt/reason_implementation_printer.ml @@ -60,8 +60,6 @@ let print printtype filename parsedAsML output_chan output_formatter = Printast.implementation output_formatter (Reason_toolchain.To_current.copy_structure ast) ) - (* If you don't wrap the function in parens, it's a totally different - * meaning #thanksOCaml *) | `None -> (fun _ -> ()) | `ML -> Reason_toolchain.ML.print_implementation_with_comments output_formatter | `Reason -> Reason_toolchain.RE.print_implementation_with_comments output_formatter From b7bc85eca762dde80843e7c9a0d82e14392be8df Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Mon, 22 Aug 2022 11:31:12 +0200 Subject: [PATCH 03/30] Add case for one extension inside switch --- src/reason-parser/reason_pprint_ast.ml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/reason-parser/reason_pprint_ast.ml b/src/reason-parser/reason_pprint_ast.ml index 100c7dbad..a1749a9c2 100644 --- a/src/reason-parser/reason_pprint_ast.ml +++ b/src/reason-parser/reason_pprint_ast.ml @@ -162,9 +162,8 @@ let expression_immediate_extension_sugar x = | None -> (None, x) | Some (name, expr) -> match expr.pexp_desc with - | Pexp_for _ | Pexp_while _ | Pexp_ifthenelse _ - | Pexp_function _ | Pexp_newtype _ - | Pexp_try _ | Pexp_match _ -> + | Pexp_for _ | Pexp_while _ | Pexp_ifthenelse _ | Pexp_function _ + | Pexp_newtype _ | Pexp_try _ | Pexp_match _ -> (Some name, expr) | _ -> (None, x) @@ -5391,7 +5390,6 @@ let printer = object(self:'self) self#formatSimplePatternBinding prefixText layoutPattern None appTerms in let {stdAttrs; docAttrs} = partitionAttributes ~partDoc:true attrs in - let body = makeList ~inline:(true, true) [body] in let layout = self#attach_std_item_attrs stdAttrs (source_map ~loc:loc body) in self#attachDocAttrsToLayout @@ -5516,6 +5514,9 @@ let printer = object(self:'self) partitionAttributes ~allowUncurry:false expr.pexp_attributes in match (stdAttrs, expr.pexp_desc) with + | ([], Pexp_extension desc ) -> + let layout = self#extension desc in + (expr.pexp_loc, layout)::acc | ([], Pexp_let (rf, l, e)) -> (* For "letList" bindings, the start/end isn't as simple as with * module value bindings. For "let lists", the sequences were formed @@ -6520,7 +6521,7 @@ let printer = object(self:'self) let pad = (true, false) in let postSpace = true in match e with - | PStr [] -> atom ("[" ^ ppxToken ^ ppxId.txt ^ "]") + | PStr [] -> atom ("[" ^ ppxToken ^ ppxId.txt ^ "]") | PStr [itm] -> makeList ~break ~wrap ~pad [self#structure_item itm] | PStr (_::_ as items) -> let rows = List.map self#structure_item items in @@ -6529,7 +6530,7 @@ let printer = object(self:'self) let wrap = wrap_prefix ":" wrap in makeList ~wrap ~break ~pad [self#core_type x] (* Signatures in attributes were added recently *) - | PSig [] -> atom ("[" ^ ppxToken ^ ppxId.txt ^":]") + | PSig [] -> atom ("[" ^ ppxToken ^ ppxId.txt ^ ":]") | PSig [x] -> let wrap = wrap_prefix ":" wrap in makeList ~break ~wrap ~pad [self#signature_item x] @@ -6547,6 +6548,7 @@ let printer = object(self:'self) label ~space:true (atom "when") (self#unparseExpr e) ] + (* [% ...] *) method extension (s, p) = match s.txt with (* We special case "bs.obj" for now to allow for a nicer interop with @@ -6557,7 +6559,6 @@ let printer = object(self:'self) method item_extension (s, e) = (self#payload "%%" s e) - (* [@ ...] Simple attributes *) method attribute = function | { attr_name = { Location. txt = ("ocaml.doc" | "ocaml.text") } From a8464845d4883861f4022b2109916d814277cf69 Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Mon, 22 Aug 2022 11:31:23 +0200 Subject: [PATCH 04/30] Remove unused Reason_string file --- src/reason-parser/dune | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/reason-parser/dune b/src/reason-parser/dune index c8660715f..288f79805 100644 --- a/src/reason-parser/dune +++ b/src/reason-parser/dune @@ -150,6 +150,5 @@ reason_oprint reason_parser_explain_raw reason_parser_explain - reason_parser_recover - reason_string) + reason_parser_recover) (libraries reason.ocaml-migrate-parsetree menhirLib reason.easy_format)) From 95f66ffd60a477896b78d790d6ac5c3bed369bb2 Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Mon, 22 Aug 2022 13:57:21 +0200 Subject: [PATCH 05/30] Inline attributes on attach_std_item_attrs --- src/reason-parser/reason_pprint_ast.ml | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/reason-parser/reason_pprint_ast.ml b/src/reason-parser/reason_pprint_ast.ml index a1749a9c2..9a0d60219 100644 --- a/src/reason-parser/reason_pprint_ast.ml +++ b/src/reason-parser/reason_pprint_ast.ml @@ -6597,7 +6597,7 @@ let printer = object(self:'self) | Some id -> [atom ("%" ^ id.txt)] in makeList - ~postSpace:true ~indent:0 ~break:Layout.Always_rec ~inline:(true, true) + ~postSpace:true ~indent:0 ~break:Layout.IfNeed ~inline:(true, true) (extension @ List.map self#item_attribute l @ [toThis]) method exception_declaration ed = @@ -7737,7 +7737,6 @@ let printer = object(self:'self) self#moduleExpressionToFormattedApplicationItems ~prefix:"include" moduleExpr - | Pstr_recmodule decls -> (* 3.07 *) let items = List.mapi (fun i xx -> let {stdAttrs; docAttrs} = @@ -7768,19 +7767,18 @@ let printer = object(self:'self) ~comments:self#comments items) | Pstr_attribute a -> self#floating_attribute a - | Pstr_extension ((extension, PStr [item]), a) -> + | Pstr_extension ((extension, PStr [item]), attrs) -> begin match item.pstr_desc with | Pstr_value (rf, l) -> self#bindings ~extension (rf, l) | _ -> let {stdAttrs; docAttrs} = - partitionAttributes ~partDoc:true a + partitionAttributes ~partDoc:true attrs in + let item = self#structure_item item in let layout = - self#attach_std_item_attrs ~extension stdAttrs - (self#structure_item item) + self#attach_std_item_attrs ~extension stdAttrs item in - makeList ~inline:(true, true) ~break:Always - ((List.map self#attribute docAttrs)@[layout]) + makeList ~wrap:("[", "]") ((List.map self#attribute docAttrs) @ [layout]) end | Pstr_extension (e, a) -> (* Notice how extensions have attributes - but not every structure From 5151a942f3ec4c862237238372fe8a933bd0934a Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Mon, 22 Aug 2022 14:01:58 +0200 Subject: [PATCH 06/30] Run esy install --- dune | 2 +- esy.json | 76 +-- esy.lock/index.json | 525 +++++++++--------- esy.lock/opam/bigarray-compat.1.1.0/opam | 26 - esy.lock/opam/camlp-streams.5.0.1/opam | 59 ++ esy.lock/opam/camomile.1.0.2/opam | 2 +- esy.lock/opam/charInfo_width.1.1.0/opam | 2 +- .../{cmdliner.1.1.0 => cmdliner.1.1.1}/opam | 42 +- esy.lock/opam/{cppo.1.6.8 => cppo.1.6.9}/opam | 40 +- esy.lock/opam/dune.2.9.3/opam | 4 +- esy.lock/opam/lambda-term.3.2.0/opam | 2 +- esy.lock/opam/{lwt.5.5.0 => lwt.5.6.1}/opam | 16 +- esy.lock/opam/lwt_log.1.1.1/opam | 1 + .../{lwt_react.1.1.5 => lwt_react.1.2.0}/opam | 9 +- .../opam | 8 +- esy.lock/opam/mmap.1.2.0/opam | 29 - ...en-installing-with-a-system-compiler.patch | 26 + .../{ocamlfind.1.9.3 => ocamlfind.1.9.5}/opam | 9 +- .../opam | 9 +- esy.lock/opam/{odoc.2.1.0 => odoc.2.1.1}/opam | 12 +- esy.lock/opam/{re.1.10.3 => re.1.10.4}/opam | 14 +- esy.lock/opam/{utop.2.8.0 => utop.2.9.2}/opam | 28 +- .../files/findlib.patch | 0 .../package.json | 0 24 files changed, 456 insertions(+), 485 deletions(-) delete mode 100644 esy.lock/opam/bigarray-compat.1.1.0/opam create mode 100644 esy.lock/opam/camlp-streams.5.0.1/opam rename esy.lock/opam/{cmdliner.1.1.0 => cmdliner.1.1.1}/opam (61%) rename esy.lock/opam/{cppo.1.6.8 => cppo.1.6.9}/opam (58%) rename esy.lock/opam/{lwt.5.5.0 => lwt.5.6.1}/opam (67%) rename esy.lock/opam/{lwt_react.1.1.5 => lwt_react.1.2.0}/opam (63%) rename esy.lock/opam/{merlin-extend.0.6 => merlin-extend.0.6.1}/opam (73%) delete mode 100644 esy.lock/opam/mmap.1.2.0/opam create mode 100644 esy.lock/opam/ocamlfind.1.9.5/files/0001-Fix-bug-when-installing-with-a-system-compiler.patch rename esy.lock/opam/{ocamlfind.1.9.3 => ocamlfind.1.9.5}/opam (72%) rename esy.lock/opam/{odoc-parser.1.0.0 => odoc-parser.1.0.1}/opam (78%) rename esy.lock/opam/{odoc.2.1.0 => odoc.2.1.1}/opam (74%) rename esy.lock/opam/{re.1.10.3 => re.1.10.4}/opam (66%) rename esy.lock/opam/{utop.2.8.0 => utop.2.9.2}/opam (68%) rename esy.lock/overrides/{opam__s__ocamlfind_opam__c__1.9.3_opam_override => opam__s__ocamlfind_opam__c__1.9.5_opam_override}/files/findlib.patch (100%) rename esy.lock/overrides/{opam__s__ocamlfind_opam__c__1.9.3_opam_override => opam__s__ocamlfind_opam__c__1.9.5_opam_override}/package.json (100%) diff --git a/dune b/dune index df970e92d..4a28cb876 100644 --- a/dune +++ b/dune @@ -1 +1 @@ -(ignored_subdirs (node_modules js)) +(data_only_dirs node_modules js) diff --git a/esy.json b/esy.json index e31157226..e73e58bc7 100644 --- a/esy.json +++ b/esy.json @@ -1,23 +1,21 @@ { "name": "reason-cli", - "notes": "This is just the dev package config (also built as globally installable reason-cli). See ./refmt.json ./rtop.json for individual release package configs.", + "notes": + "This is just the dev package config (also built as globally installable reason-cli). See ./refmt.json ./rtop.json for individual release package configs.", "license": "MIT", "version": "3.8.1", "dependencies": { - "ocaml": " >= 4.2.0 < 4.15.0", + "@opam/dune": "2.9.3", "@opam/fix": "*", - "@opam/ocamlfind": "*", "@opam/menhir": " >= 20180523.0.0", - "@opam/utop": " >= 1.17.0", "@opam/merlin-extend": " >= 0.6", + "@opam/ocamlfind": "*", + "@opam/ppx_derivers": "< 2.0.0", "@opam/result": "*", - "@opam/dune": "2.9.3", - "@opam/ppx_derivers": "< 2.0.0" - }, - "devDependencies": { - "@opam/odoc": "*", - "ocaml": "~4.12.0" + "@opam/utop": " >= 1.17.0", + "ocaml": " >= 4.2.0 < 4.15.0" }, + "devDependencies": { "@opam/odoc": "*", "ocaml": "~4.12.0" }, "notes-ctd": [ "This is how you make an esy monorepo for development, but then release the monorepo as many individual packages:", "1. Create a packageName-dev esy.json at the root and list the sum of all dependencies", @@ -27,56 +25,26 @@ "5. Copy ./scripts/esy-prepublish.js in to your repo and change packages= to your set of packages." ], "esy": { - "build": [["dune", "build", "-p", "reason,rtop"]], + "build": [ [ "dune", "build", "-p", "reason,rtop" ] ], "install": [ - ["esy-installer", "reason.install"], - ["esy-installer", "rtop.install"] + [ "esy-installer", "reason.install" ], + [ "esy-installer", "rtop.install" ] ], "exportedEnv": { - "INPUT_ARGUMENTS": { - "scope": "global", - "val": "a" - }, - "BUILD_REQUESTEDFOREMAIL": { - "scope": "global", - "val": "b" - }, - "VSTS_SECRET_VARIABLES": { - "scope": "global", - "val": "c" - }, - "SYSTEM_PULLREQUEST_MERGEDAT": { - "scope": "global", - "val": "d" - } + "INPUT_ARGUMENTS": { "scope": "global", "val": "a" }, + "BUILD_REQUESTEDFOREMAIL": { "scope": "global", "val": "b" }, + "VSTS_SECRET_VARIABLES": { "scope": "global", "val": "c" }, + "SYSTEM_PULLREQUEST_MERGEDAT": { "scope": "global", "val": "d" } }, "release": { - "bin": { - "rtop": "rtop", - "refmt": "refmt" - }, + "bin": { "rtop": "rtop", "refmt": "refmt" }, "includePackages": [ - "root", - "@opam/base-bytes", - "@opam/base-threads", - "@opam/base-unix", - "@opam/camomile", - "@opam/lambda-term", - "@opam/lwt", - "@opam/lwt_log", - "@opam/lwt_react", - "@opam/menhir", - "@opam/mmap", - "@opam/ocplib-endian", - "@opam/ocamlfind", - "@opam/ppx_derivers", - "@opam/react", - "@opam/result", - "@opam/seq", - "@opam/charInfo_width", - "@opam/utop", - "@opam/zed", - "ocaml" + "root", "@opam/base-bytes", "@opam/base-threads", "@opam/base-unix", + "@opam/camomile", "@opam/lambda-term", "@opam/lwt", "@opam/lwt_log", + "@opam/lwt_react", "@opam/menhir", "@opam/mmap", + "@opam/ocplib-endian", "@opam/ocamlfind", "@opam/ppx_derivers", + "@opam/react", "@opam/result", "@opam/seq", "@opam/charInfo_width", + "@opam/utop", "@opam/zed", "ocaml" ], "rewritePrefix": true } diff --git a/esy.lock/index.json b/esy.lock/index.json index f1cb4bd3f..ad06ec858 100644 --- a/esy.lock/index.json +++ b/esy.lock/index.json @@ -9,26 +9,26 @@ "source": { "type": "link-dev", "path": ".", "manifest": "esy.json" }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/utop@opam:2.8.0@1d94c18c", + "ocaml@4.12.1001@d41d8cd9", "@opam/utop@opam:2.9.2@b7356e33", "@opam/result@opam:1.5@1c6a6533", "@opam/ppx_derivers@opam:1.2.1@e2cbad12", - "@opam/ocamlfind@opam:1.9.3@781b30f3", - "@opam/merlin-extend@opam:0.6@88755c91", + "@opam/ocamlfind@opam:1.9.5@c23112ba", + "@opam/merlin-extend@opam:0.6.1@7d979feb", "@opam/menhir@opam:20220210@ff87a93b", - "@opam/fix@opam:20220121@17b9a1a4", "@opam/dune@opam:2.9.3@f57a6d69" + "@opam/fix@opam:20220121@17b9a1a4", "@opam/dune@opam:2.9.3@4d52c673" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/odoc@opam:2.1.0@d39daa6f" + "ocaml@4.12.1001@d41d8cd9", "@opam/odoc@opam:2.1.1@ccba8a4e" ] }, - "ocaml@4.12.0@d41d8cd9": { - "id": "ocaml@4.12.0@d41d8cd9", + "ocaml@4.12.1001@d41d8cd9": { + "id": "ocaml@4.12.1001@d41d8cd9", "name": "ocaml", - "version": "4.12.0", + "version": "4.12.1001", "source": { "type": "install", "source": [ - "archive:https://registry.npmjs.org/ocaml/-/ocaml-4.12.0.tgz#sha1:2a979f37535faaded8aa3fdf82b6f16f2c71e284" + "archive:https://registry.npmjs.org/ocaml/-/ocaml-4.12.1001.tgz#sha1:6fb89973e5f2e5c3131e4b95b76dfbccceb2c050" ] }, "overrides": [], @@ -53,18 +53,18 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/react@opam:1.2.2@e0f4480e", - "@opam/dune@opam:2.9.3@f57a6d69", - "@opam/charInfo_width@opam:1.1.0@1a0889ea", - "@opam/camomile@opam:1.0.2@42017332", + "ocaml@4.12.1001@d41d8cd9", "@opam/react@opam:1.2.2@e0f4480e", + "@opam/dune@opam:2.9.3@4d52c673", + "@opam/charInfo_width@opam:1.1.0@2e6806d6", + "@opam/camomile@opam:1.0.2@27671317", "@opam/base-bytes@opam:base@19d0c2ff", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/react@opam:1.2.2@e0f4480e", - "@opam/dune@opam:2.9.3@f57a6d69", - "@opam/charInfo_width@opam:1.1.0@1a0889ea", - "@opam/camomile@opam:1.0.2@42017332", + "ocaml@4.12.1001@d41d8cd9", "@opam/react@opam:1.2.2@e0f4480e", + "@opam/dune@opam:2.9.3@4d52c673", + "@opam/charInfo_width@opam:1.1.0@2e6806d6", + "@opam/camomile@opam:1.0.2@27671317", "@opam/base-bytes@opam:base@19d0c2ff" ] }, @@ -86,51 +86,51 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/topkg@opam:1.0.5@0aa59f51", - "@opam/ocamlfind@opam:1.9.3@781b30f3", + "ocaml@4.12.1001@d41d8cd9", "@opam/topkg@opam:1.0.5@0aa59f51", + "@opam/ocamlfind@opam:1.9.5@c23112ba", "@opam/ocamlbuild@opam:0.14.1@ead10f40", - "@opam/cmdliner@opam:1.1.0@643a0e00", + "@opam/cmdliner@opam:1.1.1@03763729", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.12.0@d41d8cd9" ] + "devDependencies": [ "ocaml@4.12.1001@d41d8cd9" ] }, - "@opam/utop@opam:2.8.0@1d94c18c": { - "id": "@opam/utop@opam:2.8.0@1d94c18c", + "@opam/utop@opam:2.9.2@b7356e33": { + "id": "@opam/utop@opam:2.9.2@b7356e33", "name": "@opam/utop", - "version": "opam:2.8.0", + "version": "opam:2.9.2", "source": { "type": "install", "source": [ - "archive:https://opam.ocaml.org/cache/sha256/4d/4d2cb88ce598122198726a74274395dd22eacf0a18d9ac24e3047fe962382556#sha256:4d2cb88ce598122198726a74274395dd22eacf0a18d9ac24e3047fe962382556", - "archive:https://github.com/ocaml-community/utop/releases/download/2.8.0/utop-2.8.0.tbz#sha256:4d2cb88ce598122198726a74274395dd22eacf0a18d9ac24e3047fe962382556" + "archive:https://opam.ocaml.org/cache/md5/ab/abd1c592464ce5f31b17009954040d7c#md5:abd1c592464ce5f31b17009954040d7c", + "archive:https://github.com/ocaml-community/utop/releases/download/2.9.2/utop-2.9.2.tbz#md5:abd1c592464ce5f31b17009954040d7c" ], "opam": { "name": "utop", - "version": "2.8.0", - "path": "esy.lock/opam/utop.2.8.0" + "version": "2.9.2", + "path": "esy.lock/opam/utop.2.9.2" } }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/react@opam:1.2.2@e0f4480e", - "@opam/ocamlfind@opam:1.9.3@781b30f3", - "@opam/lwt_react@opam:1.1.5@9b9c268e", - "@opam/lwt@opam:5.5.0@30354e4c", - "@opam/lambda-term@opam:3.2.0@43a9b88a", - "@opam/dune@opam:2.9.3@f57a6d69", "@opam/cppo@opam:1.6.8@7e48217d", - "@opam/camomile@opam:1.0.2@42017332", + "ocaml@4.12.1001@d41d8cd9", "@opam/react@opam:1.2.2@e0f4480e", + "@opam/ocamlfind@opam:1.9.5@c23112ba", + "@opam/lwt_react@opam:1.2.0@4253a145", + "@opam/lwt@opam:5.6.1@2a9902ab", + "@opam/lambda-term@opam:3.2.0@5fedaa67", + "@opam/dune@opam:2.9.3@4d52c673", "@opam/cppo@opam:1.6.9@db929a12", + "@opam/camomile@opam:1.0.2@27671317", "@opam/base-unix@opam:base@87d0b2eb", "@opam/base-threads@opam:base@36803084", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/react@opam:1.2.2@e0f4480e", - "@opam/ocamlfind@opam:1.9.3@781b30f3", - "@opam/lwt_react@opam:1.1.5@9b9c268e", - "@opam/lwt@opam:5.5.0@30354e4c", - "@opam/lambda-term@opam:3.2.0@43a9b88a", - "@opam/dune@opam:2.9.3@f57a6d69", - "@opam/camomile@opam:1.0.2@42017332", + "ocaml@4.12.1001@d41d8cd9", "@opam/react@opam:1.2.2@e0f4480e", + "@opam/ocamlfind@opam:1.9.5@c23112ba", + "@opam/lwt_react@opam:1.2.0@4253a145", + "@opam/lwt@opam:5.6.1@2a9902ab", + "@opam/lambda-term@opam:3.2.0@5fedaa67", + "@opam/dune@opam:2.9.3@4d52c673", + "@opam/camomile@opam:1.0.2@27671317", "@opam/base-unix@opam:base@87d0b2eb", "@opam/base-threads@opam:base@36803084" ] @@ -153,14 +153,14 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/uutf@opam:1.0.3@47c95a18", - "@opam/seq@opam:base@d8d7de1d", "@opam/re@opam:1.10.3@0585c65d", - "@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "ocaml@4.12.1001@d41d8cd9", "@opam/uutf@opam:1.0.3@47c95a18", + "@opam/seq@opam:base@d8d7de1d", "@opam/re@opam:1.10.4@c4910ba6", + "@opam/dune@opam:2.9.3@4d52c673", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/uutf@opam:1.0.3@47c95a18", - "@opam/seq@opam:base@d8d7de1d", "@opam/re@opam:1.10.3@0585c65d", - "@opam/dune@opam:2.9.3@f57a6d69" + "ocaml@4.12.1001@d41d8cd9", "@opam/uutf@opam:1.0.3@47c95a18", + "@opam/seq@opam:base@d8d7de1d", "@opam/re@opam:1.10.4@c4910ba6", + "@opam/dune@opam:2.9.3@4d52c673" ] }, "@opam/trie@opam:1.0.0@f4e510e2": { @@ -181,11 +181,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69", + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69" + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673" ] }, "@opam/topkg@opam:1.0.5@0aa59f51": { @@ -206,12 +206,12 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/ocamlfind@opam:1.9.3@781b30f3", + "ocaml@4.12.1001@d41d8cd9", "@opam/ocamlfind@opam:1.9.5@c23112ba", "@opam/ocamlbuild@opam:0.14.1@ead10f40", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/ocamlbuild@opam:0.14.1@ead10f40" + "ocaml@4.12.1001@d41d8cd9", "@opam/ocamlbuild@opam:0.14.1@ead10f40" ] }, "@opam/seq@opam:base@d8d7de1d": { @@ -229,9 +229,9 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "ocaml@4.12.1001@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.12.0@d41d8cd9" ] + "devDependencies": [ "ocaml@4.12.1001@d41d8cd9" ] }, "@opam/result@opam:1.5@1c6a6533": { "id": "@opam/result@opam:1.5@1c6a6533", @@ -251,11 +251,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69", + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69" + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673" ] }, "@opam/react@opam:1.2.2@e0f4480e": { @@ -276,37 +276,37 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/topkg@opam:1.0.5@0aa59f51", - "@opam/ocamlfind@opam:1.9.3@781b30f3", + "ocaml@4.12.1001@d41d8cd9", "@opam/topkg@opam:1.0.5@0aa59f51", + "@opam/ocamlfind@opam:1.9.5@c23112ba", "@opam/ocamlbuild@opam:0.14.1@ead10f40", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.12.0@d41d8cd9" ] + "devDependencies": [ "ocaml@4.12.1001@d41d8cd9" ] }, - "@opam/re@opam:1.10.3@0585c65d": { - "id": "@opam/re@opam:1.10.3@0585c65d", + "@opam/re@opam:1.10.4@c4910ba6": { + "id": "@opam/re@opam:1.10.4@c4910ba6", "name": "@opam/re", - "version": "opam:1.10.3", + "version": "opam:1.10.4", "source": { "type": "install", "source": [ - "archive:https://opam.ocaml.org/cache/sha256/84/846546967f3fe31765935dd40a6460a9424337ecce7b12727fcba49480790ebb#sha256:846546967f3fe31765935dd40a6460a9424337ecce7b12727fcba49480790ebb", - "archive:https://github.com/ocaml/ocaml-re/releases/download/1.10.3/re-1.10.3.tbz#sha256:846546967f3fe31765935dd40a6460a9424337ecce7b12727fcba49480790ebb" + "archive:https://opam.ocaml.org/cache/sha256/83/83eb3e4300aa9b1dc7820749010f4362ea83524742130524d78c20ce99ca747c#sha256:83eb3e4300aa9b1dc7820749010f4362ea83524742130524d78c20ce99ca747c", + "archive:https://github.com/ocaml/ocaml-re/releases/download/1.10.4/re-1.10.4.tbz#sha256:83eb3e4300aa9b1dc7820749010f4362ea83524742130524d78c20ce99ca747c" ], "opam": { "name": "re", - "version": "1.10.3", - "path": "esy.lock/opam/re.1.10.3" + "version": "1.10.4", + "path": "esy.lock/opam/re.1.10.4" } }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/seq@opam:base@d8d7de1d", - "@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "ocaml@4.12.1001@d41d8cd9", "@opam/seq@opam:base@d8d7de1d", + "@opam/dune@opam:2.9.3@4d52c673", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/seq@opam:base@d8d7de1d", - "@opam/dune@opam:2.9.3@f57a6d69" + "ocaml@4.12.1001@d41d8cd9", "@opam/seq@opam:base@d8d7de1d", + "@opam/dune@opam:2.9.3@4d52c673" ] }, "@opam/ppx_derivers@opam:1.2.1@e2cbad12": { @@ -327,75 +327,78 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69", + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69" + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673" ] }, - "@opam/odoc-parser@opam:1.0.0@b1029bdf": { - "id": "@opam/odoc-parser@opam:1.0.0@b1029bdf", + "@opam/odoc-parser@opam:1.0.1@4bf15d79": { + "id": "@opam/odoc-parser@opam:1.0.1@4bf15d79", "name": "@opam/odoc-parser", - "version": "opam:1.0.0", + "version": "opam:1.0.1", "source": { "type": "install", "source": [ - "archive:https://opam.ocaml.org/cache/sha256/b6/b6aa08ea71a9ebad9b2bebc4da1eda0d713cf3674e6d57d10459d934286e7aa1#sha256:b6aa08ea71a9ebad9b2bebc4da1eda0d713cf3674e6d57d10459d934286e7aa1", - "archive:https://github.com/ocaml-doc/odoc-parser/releases/download/1.0.0/odoc-parser-1.0.0.tbz#sha256:b6aa08ea71a9ebad9b2bebc4da1eda0d713cf3674e6d57d10459d934286e7aa1" + "archive:https://opam.ocaml.org/cache/sha256/a2/a2bbe8e4201b60e980bab01e96e41f2ba0b05ba3f50b44f75837e8a2fb907d2c#sha256:a2bbe8e4201b60e980bab01e96e41f2ba0b05ba3f50b44f75837e8a2fb907d2c", + "archive:https://github.com/ocaml-doc/odoc-parser/releases/download/1.0.1/odoc-parser-1.0.1.tbz#sha256:a2bbe8e4201b60e980bab01e96e41f2ba0b05ba3f50b44f75837e8a2fb907d2c" ], "opam": { "name": "odoc-parser", - "version": "1.0.0", - "path": "esy.lock/opam/odoc-parser.1.0.0" + "version": "1.0.1", + "path": "esy.lock/opam/odoc-parser.1.0.1" } }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/result@opam:1.5@1c6a6533", - "@opam/dune@opam:2.9.3@f57a6d69", + "ocaml@4.12.1001@d41d8cd9", "@opam/result@opam:1.5@1c6a6533", + "@opam/dune@opam:2.9.3@4d52c673", + "@opam/camlp-streams@opam:5.0.1@daaa0f94", "@opam/astring@opam:0.8.5@1300cee8", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/result@opam:1.5@1c6a6533", - "@opam/dune@opam:2.9.3@f57a6d69", "@opam/astring@opam:0.8.5@1300cee8" + "ocaml@4.12.1001@d41d8cd9", "@opam/result@opam:1.5@1c6a6533", + "@opam/dune@opam:2.9.3@4d52c673", + "@opam/camlp-streams@opam:5.0.1@daaa0f94", + "@opam/astring@opam:0.8.5@1300cee8" ] }, - "@opam/odoc@opam:2.1.0@d39daa6f": { - "id": "@opam/odoc@opam:2.1.0@d39daa6f", + "@opam/odoc@opam:2.1.1@ccba8a4e": { + "id": "@opam/odoc@opam:2.1.1@ccba8a4e", "name": "@opam/odoc", - "version": "opam:2.1.0", + "version": "opam:2.1.1", "source": { "type": "install", "source": [ - "archive:https://opam.ocaml.org/cache/sha256/65/65a2523a50ee368164f1f24f75866a6a36cdb0d00039c3006ec824351d4e4967#sha256:65a2523a50ee368164f1f24f75866a6a36cdb0d00039c3006ec824351d4e4967", - "archive:https://github.com/ocaml/odoc/releases/download/2.1.0/odoc-2.1.0.tbz#sha256:65a2523a50ee368164f1f24f75866a6a36cdb0d00039c3006ec824351d4e4967" + "archive:https://opam.ocaml.org/cache/sha256/f5/f574dbd28cd0fc3a2b95525c4bb95ddf6d1f6408bb4fe12157fa537884f987fd#sha256:f574dbd28cd0fc3a2b95525c4bb95ddf6d1f6408bb4fe12157fa537884f987fd", + "archive:https://github.com/ocaml/odoc/releases/download/2.1.1/odoc-2.1.1.tbz#sha256:f574dbd28cd0fc3a2b95525c4bb95ddf6d1f6408bb4fe12157fa537884f987fd" ], "opam": { "name": "odoc", - "version": "2.1.0", - "path": "esy.lock/opam/odoc.2.1.0" + "version": "2.1.1", + "path": "esy.lock/opam/odoc.2.1.1" } }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/tyxml@opam:4.5.0@0a609297", + "ocaml@4.12.1001@d41d8cd9", "@opam/tyxml@opam:4.5.0@0a609297", "@opam/result@opam:1.5@1c6a6533", - "@opam/odoc-parser@opam:1.0.0@b1029bdf", + "@opam/odoc-parser@opam:1.0.1@4bf15d79", "@opam/fpath@opam:0.7.3@674d8125", "@opam/fmt@opam:0.9.0@87213963", - "@opam/dune@opam:2.9.3@f57a6d69", "@opam/cppo@opam:1.6.8@7e48217d", - "@opam/cmdliner@opam:1.1.0@643a0e00", + "@opam/dune@opam:2.9.3@4d52c673", "@opam/cppo@opam:1.6.9@db929a12", + "@opam/cmdliner@opam:1.1.1@03763729", "@opam/astring@opam:0.8.5@1300cee8", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/tyxml@opam:4.5.0@0a609297", + "ocaml@4.12.1001@d41d8cd9", "@opam/tyxml@opam:4.5.0@0a609297", "@opam/result@opam:1.5@1c6a6533", - "@opam/odoc-parser@opam:1.0.0@b1029bdf", + "@opam/odoc-parser@opam:1.0.1@4bf15d79", "@opam/fpath@opam:0.7.3@674d8125", "@opam/fmt@opam:0.9.0@87213963", - "@opam/dune@opam:2.9.3@f57a6d69", - "@opam/cmdliner@opam:1.1.0@643a0e00", + "@opam/dune@opam:2.9.3@4d52c673", + "@opam/cmdliner@opam:1.1.1@03763729", "@opam/astring@opam:0.8.5@1300cee8" ] }, @@ -417,42 +420,42 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69", - "@opam/cppo@opam:1.6.8@7e48217d", + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673", + "@opam/cppo@opam:1.6.9@db929a12", "@opam/base-bytes@opam:base@19d0c2ff", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69", + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673", "@opam/base-bytes@opam:base@19d0c2ff" ] }, - "@opam/ocamlfind@opam:1.9.3@781b30f3": { - "id": "@opam/ocamlfind@opam:1.9.3@781b30f3", + "@opam/ocamlfind@opam:1.9.5@c23112ba": { + "id": "@opam/ocamlfind@opam:1.9.5@c23112ba", "name": "@opam/ocamlfind", - "version": "opam:1.9.3", + "version": "opam:1.9.5", "source": { "type": "install", "source": [ - "archive:https://opam.ocaml.org/cache/md5/24/24047dd8a0da5322253de9b7aa254e42#md5:24047dd8a0da5322253de9b7aa254e42", - "archive:http://download.camlcity.org/download/findlib-1.9.3.tar.gz#md5:24047dd8a0da5322253de9b7aa254e42" + "archive:https://opam.ocaml.org/cache/md5/8b/8b893525ce36cb3d4d4952483bcc7cf4#md5:8b893525ce36cb3d4d4952483bcc7cf4", + "archive:http://download.camlcity.org/download/findlib-1.9.5.tar.gz#md5:8b893525ce36cb3d4d4952483bcc7cf4" ], "opam": { "name": "ocamlfind", - "version": "1.9.3", - "path": "esy.lock/opam/ocamlfind.1.9.3" + "version": "1.9.5", + "path": "esy.lock/opam/ocamlfind.1.9.5" } }, "overrides": [ { "opamoverride": - "esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.3_opam_override" + "esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.5_opam_override" } ], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "ocaml@4.12.1001@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.12.0@d41d8cd9" ] + "devDependencies": [ "ocaml@4.12.1001@d41d8cd9" ] }, "@opam/ocamlbuild@opam:0.14.1@ead10f40": { "id": "@opam/ocamlbuild@opam:0.14.1@ead10f40", @@ -477,36 +480,9 @@ } ], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "ocaml@4.12.1001@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.12.0@d41d8cd9" ] - }, - "@opam/mmap@opam:1.2.0@b0f60a84": { - "id": "@opam/mmap@opam:1.2.0@b0f60a84", - "name": "@opam/mmap", - "version": "opam:1.2.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/16/1602a8abc8e232fa94771a52e540e5780b40c2f2762eee6afbd9286502116ddb#sha256:1602a8abc8e232fa94771a52e540e5780b40c2f2762eee6afbd9286502116ddb", - "archive:https://github.com/mirage/mmap/releases/download/v1.2.0/mmap-1.2.0.tbz#sha256:1602a8abc8e232fa94771a52e540e5780b40c2f2762eee6afbd9286502116ddb" - ], - "opam": { - "name": "mmap", - "version": "1.2.0", - "path": "esy.lock/opam/mmap.1.2.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69", - "@opam/bigarray-compat@opam:1.1.0@84cda9d0", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69", - "@opam/bigarray-compat@opam:1.1.0@84cda9d0" - ] + "devDependencies": [ "ocaml@4.12.1001@d41d8cd9" ] }, "@opam/mew_vi@opam:0.5.0@cf66c299": { "id": "@opam/mew_vi@opam:0.5.0@cf66c299", @@ -526,13 +502,13 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/react@opam:1.2.2@e0f4480e", - "@opam/mew@opam:0.1.0@65011d4b", "@opam/dune@opam:2.9.3@f57a6d69", + "ocaml@4.12.1001@d41d8cd9", "@opam/react@opam:1.2.2@e0f4480e", + "@opam/mew@opam:0.1.0@65011d4b", "@opam/dune@opam:2.9.3@4d52c673", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/react@opam:1.2.2@e0f4480e", - "@opam/mew@opam:0.1.0@65011d4b", "@opam/dune@opam:2.9.3@f57a6d69" + "ocaml@4.12.1001@d41d8cd9", "@opam/react@opam:1.2.2@e0f4480e", + "@opam/mew@opam:0.1.0@65011d4b", "@opam/dune@opam:2.9.3@4d52c673" ] }, "@opam/mew@opam:0.1.0@65011d4b": { @@ -553,38 +529,38 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/trie@opam:1.0.0@f4e510e2", - "@opam/result@opam:1.5@1c6a6533", "@opam/dune@opam:2.9.3@f57a6d69", + "ocaml@4.12.1001@d41d8cd9", "@opam/trie@opam:1.0.0@f4e510e2", + "@opam/result@opam:1.5@1c6a6533", "@opam/dune@opam:2.9.3@4d52c673", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/trie@opam:1.0.0@f4e510e2", - "@opam/result@opam:1.5@1c6a6533", "@opam/dune@opam:2.9.3@f57a6d69" + "ocaml@4.12.1001@d41d8cd9", "@opam/trie@opam:1.0.0@f4e510e2", + "@opam/result@opam:1.5@1c6a6533", "@opam/dune@opam:2.9.3@4d52c673" ] }, - "@opam/merlin-extend@opam:0.6@88755c91": { - "id": "@opam/merlin-extend@opam:0.6@88755c91", + "@opam/merlin-extend@opam:0.6.1@7d979feb": { + "id": "@opam/merlin-extend@opam:0.6.1@7d979feb", "name": "@opam/merlin-extend", - "version": "opam:0.6", + "version": "opam:0.6.1", "source": { "type": "install", "source": [ - "archive:https://opam.ocaml.org/cache/sha256/c2/c2f236ae97feb6ba0bc90f33beb7b7343e42f9871b66de9ba07974917e256c43#sha256:c2f236ae97feb6ba0bc90f33beb7b7343e42f9871b66de9ba07974917e256c43", - "archive:https://github.com/let-def/merlin-extend/releases/download/v0.6/merlin-extend-v0.6.tbz#sha256:c2f236ae97feb6ba0bc90f33beb7b7343e42f9871b66de9ba07974917e256c43" + "archive:https://opam.ocaml.org/cache/sha256/5e/5ec84b355ddb2d129a5948b132bfacc93adcbde2158c7de695f7bfc3650bead7#sha256:5ec84b355ddb2d129a5948b132bfacc93adcbde2158c7de695f7bfc3650bead7", + "archive:https://github.com/let-def/merlin-extend/releases/download/v0.6.1/merlin-extend-0.6.1.tbz#sha256:5ec84b355ddb2d129a5948b132bfacc93adcbde2158c7de695f7bfc3650bead7" ], "opam": { "name": "merlin-extend", - "version": "0.6", - "path": "esy.lock/opam/merlin-extend.0.6" + "version": "0.6.1", + "path": "esy.lock/opam/merlin-extend.0.6.1" } }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69", - "@opam/cppo@opam:1.6.8@7e48217d", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673", + "@opam/cppo@opam:1.6.9@db929a12", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69" + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673" ] }, "@opam/menhirSdk@opam:20220210@b8921e41": { @@ -605,11 +581,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69", + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69" + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673" ] }, "@opam/menhirLib@opam:20220210@e6562f4f": { @@ -630,11 +606,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69", + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69" + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673" ] }, "@opam/menhir@opam:20220210@ff87a93b": { @@ -655,45 +631,45 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/menhirSdk@opam:20220210@b8921e41", + "ocaml@4.12.1001@d41d8cd9", "@opam/menhirSdk@opam:20220210@b8921e41", "@opam/menhirLib@opam:20220210@e6562f4f", - "@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "@opam/dune@opam:2.9.3@4d52c673", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/menhirSdk@opam:20220210@b8921e41", + "ocaml@4.12.1001@d41d8cd9", "@opam/menhirSdk@opam:20220210@b8921e41", "@opam/menhirLib@opam:20220210@e6562f4f", - "@opam/dune@opam:2.9.3@f57a6d69" + "@opam/dune@opam:2.9.3@4d52c673" ] }, - "@opam/lwt_react@opam:1.1.5@9b9c268e": { - "id": "@opam/lwt_react@opam:1.1.5@9b9c268e", + "@opam/lwt_react@opam:1.2.0@4253a145": { + "id": "@opam/lwt_react@opam:1.2.0@4253a145", "name": "@opam/lwt_react", - "version": "opam:1.1.5", + "version": "opam:1.2.0", "source": { "type": "install", "source": [ - "archive:https://opam.ocaml.org/cache/md5/94/94272fac89c5bf21a89c102b8a8f35a5#md5:94272fac89c5bf21a89c102b8a8f35a5", - "archive:https://github.com/ocsigen/lwt/archive/refs/tags/5.5.0.tar.gz#md5:94272fac89c5bf21a89c102b8a8f35a5" + "archive:https://opam.ocaml.org/cache/md5/e6/e63979ee40a80d5b9e9e5545f33323b4#md5:e63979ee40a80d5b9e9e5545f33323b4", + "archive:https://github.com/ocsigen/lwt/archive/5.6.0.tar.gz#md5:e63979ee40a80d5b9e9e5545f33323b4" ], "opam": { "name": "lwt_react", - "version": "1.1.5", - "path": "esy.lock/opam/lwt_react.1.1.5" + "version": "1.2.0", + "path": "esy.lock/opam/lwt_react.1.2.0" } }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/react@opam:1.2.2@e0f4480e", - "@opam/lwt@opam:5.5.0@30354e4c", "@opam/dune@opam:2.9.3@f57a6d69", - "@esy-ocaml/substs@0.0.1@d41d8cd9" + "ocaml@4.12.1001@d41d8cd9", "@opam/react@opam:1.2.2@e0f4480e", + "@opam/lwt@opam:5.6.1@2a9902ab", "@opam/dune@opam:2.9.3@4d52c673", + "@opam/cppo@opam:1.6.9@db929a12", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/react@opam:1.2.2@e0f4480e", - "@opam/lwt@opam:5.5.0@30354e4c", "@opam/dune@opam:2.9.3@f57a6d69" + "ocaml@4.12.1001@d41d8cd9", "@opam/react@opam:1.2.2@e0f4480e", + "@opam/lwt@opam:5.6.1@2a9902ab", "@opam/dune@opam:2.9.3@4d52c673" ] }, - "@opam/lwt_log@opam:1.1.1@fc97477f": { - "id": "@opam/lwt_log@opam:1.1.1@fc97477f", + "@opam/lwt_log@opam:1.1.1@b126dcbe": { + "id": "@opam/lwt_log@opam:1.1.1@b126dcbe", "name": "@opam/lwt_log", "version": "opam:1.1.1", "source": { @@ -710,52 +686,47 @@ }, "overrides": [], "dependencies": [ - "@opam/lwt@opam:5.5.0@30354e4c", "@opam/dune@opam:2.9.3@f57a6d69", - "@esy-ocaml/substs@0.0.1@d41d8cd9" + "ocaml@4.12.1001@d41d8cd9", "@opam/lwt@opam:5.6.1@2a9902ab", + "@opam/dune@opam:2.9.3@4d52c673", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "@opam/lwt@opam:5.5.0@30354e4c", "@opam/dune@opam:2.9.3@f57a6d69" + "ocaml@4.12.1001@d41d8cd9", "@opam/lwt@opam:5.6.1@2a9902ab", + "@opam/dune@opam:2.9.3@4d52c673" ] }, - "@opam/lwt@opam:5.5.0@30354e4c": { - "id": "@opam/lwt@opam:5.5.0@30354e4c", + "@opam/lwt@opam:5.6.1@2a9902ab": { + "id": "@opam/lwt@opam:5.6.1@2a9902ab", "name": "@opam/lwt", - "version": "opam:5.5.0", + "version": "opam:5.6.1", "source": { "type": "install", "source": [ - "archive:https://opam.ocaml.org/cache/md5/94/94272fac89c5bf21a89c102b8a8f35a5#md5:94272fac89c5bf21a89c102b8a8f35a5", - "archive:https://github.com/ocsigen/lwt/archive/refs/tags/5.5.0.tar.gz#md5:94272fac89c5bf21a89c102b8a8f35a5" + "archive:https://opam.ocaml.org/cache/md5/27/279024789a0ec84a9d97d98bad847f97#md5:279024789a0ec84a9d97d98bad847f97", + "archive:https://github.com/ocsigen/lwt/archive/5.6.1.tar.gz#md5:279024789a0ec84a9d97d98bad847f97" ], "opam": { "name": "lwt", - "version": "5.5.0", - "path": "esy.lock/opam/lwt.5.5.0" + "version": "5.6.1", + "path": "esy.lock/opam/lwt.5.6.1" } }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/seq@opam:base@d8d7de1d", - "@opam/result@opam:1.5@1c6a6533", - "@opam/ocplib-endian@opam:1.2@008dc942", - "@opam/mmap@opam:1.2.0@b0f60a84", + "ocaml@4.12.1001@d41d8cd9", "@opam/ocplib-endian@opam:1.2@008dc942", "@opam/dune-configurator@opam:2.9.3@174e411b", - "@opam/dune@opam:2.9.3@f57a6d69", "@opam/cppo@opam:1.6.8@7e48217d", + "@opam/dune@opam:2.9.3@4d52c673", "@opam/cppo@opam:1.6.9@db929a12", "@opam/base-unix@opam:base@87d0b2eb", "@opam/base-threads@opam:base@36803084", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/seq@opam:base@d8d7de1d", - "@opam/result@opam:1.5@1c6a6533", - "@opam/ocplib-endian@opam:1.2@008dc942", - "@opam/mmap@opam:1.2.0@b0f60a84", + "ocaml@4.12.1001@d41d8cd9", "@opam/ocplib-endian@opam:1.2@008dc942", "@opam/dune-configurator@opam:2.9.3@174e411b", - "@opam/dune@opam:2.9.3@f57a6d69" + "@opam/dune@opam:2.9.3@4d52c673" ] }, - "@opam/lambda-term@opam:3.2.0@43a9b88a": { - "id": "@opam/lambda-term@opam:3.2.0@43a9b88a", + "@opam/lambda-term@opam:3.2.0@5fedaa67": { + "id": "@opam/lambda-term@opam:3.2.0@5fedaa67", "name": "@opam/lambda-term", "version": "opam:3.2.0", "source": { @@ -772,23 +743,23 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/zed@opam:3.1.0@6e750e3e", + "ocaml@4.12.1001@d41d8cd9", "@opam/zed@opam:3.1.0@6e750e3e", "@opam/react@opam:1.2.2@e0f4480e", "@opam/mew_vi@opam:0.5.0@cf66c299", - "@opam/lwt_react@opam:1.1.5@9b9c268e", - "@opam/lwt_log@opam:1.1.1@fc97477f", "@opam/lwt@opam:5.5.0@30354e4c", - "@opam/dune@opam:2.9.3@f57a6d69", - "@opam/camomile@opam:1.0.2@42017332", + "@opam/lwt_react@opam:1.2.0@4253a145", + "@opam/lwt_log@opam:1.1.1@b126dcbe", "@opam/lwt@opam:5.6.1@2a9902ab", + "@opam/dune@opam:2.9.3@4d52c673", + "@opam/camomile@opam:1.0.2@27671317", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/zed@opam:3.1.0@6e750e3e", + "ocaml@4.12.1001@d41d8cd9", "@opam/zed@opam:3.1.0@6e750e3e", "@opam/react@opam:1.2.2@e0f4480e", "@opam/mew_vi@opam:0.5.0@cf66c299", - "@opam/lwt_react@opam:1.1.5@9b9c268e", - "@opam/lwt_log@opam:1.1.1@fc97477f", "@opam/lwt@opam:5.5.0@30354e4c", - "@opam/dune@opam:2.9.3@f57a6d69", - "@opam/camomile@opam:1.0.2@42017332" + "@opam/lwt_react@opam:1.2.0@4253a145", + "@opam/lwt_log@opam:1.1.1@b126dcbe", "@opam/lwt@opam:5.6.1@2a9902ab", + "@opam/dune@opam:2.9.3@4d52c673", + "@opam/camomile@opam:1.0.2@27671317" ] }, "@opam/fpath@opam:0.7.3@674d8125": { @@ -809,14 +780,14 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/topkg@opam:1.0.5@0aa59f51", - "@opam/ocamlfind@opam:1.9.3@781b30f3", + "ocaml@4.12.1001@d41d8cd9", "@opam/topkg@opam:1.0.5@0aa59f51", + "@opam/ocamlfind@opam:1.9.5@c23112ba", "@opam/ocamlbuild@opam:0.14.1@ead10f40", "@opam/astring@opam:0.8.5@1300cee8", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/astring@opam:0.8.5@1300cee8" + "ocaml@4.12.1001@d41d8cd9", "@opam/astring@opam:0.8.5@1300cee8" ] }, "@opam/fmt@opam:0.9.0@87213963": { @@ -837,14 +808,14 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/topkg@opam:1.0.5@0aa59f51", - "@opam/ocamlfind@opam:1.9.3@781b30f3", + "ocaml@4.12.1001@d41d8cd9", "@opam/topkg@opam:1.0.5@0aa59f51", + "@opam/ocamlfind@opam:1.9.5@c23112ba", "@opam/ocamlbuild@opam:0.14.1@ead10f40", - "@opam/cmdliner@opam:1.1.0@643a0e00", + "@opam/cmdliner@opam:1.1.1@03763729", "@opam/base-unix@opam:base@87d0b2eb", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.12.0@d41d8cd9" ] + "devDependencies": [ "ocaml@4.12.1001@d41d8cd9" ] }, "@opam/fix@opam:20220121@17b9a1a4": { "id": "@opam/fix@opam:20220121@17b9a1a4", @@ -864,11 +835,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69", + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69" + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673" ] }, "@opam/dune-configurator@opam:2.9.3@174e411b": { @@ -889,17 +860,17 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/result@opam:1.5@1c6a6533", - "@opam/dune@opam:2.9.3@f57a6d69", "@opam/csexp@opam:1.5.1@8a8fb3a7", + "ocaml@4.12.1001@d41d8cd9", "@opam/result@opam:1.5@1c6a6533", + "@opam/dune@opam:2.9.3@4d52c673", "@opam/csexp@opam:1.5.1@8a8fb3a7", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/result@opam:1.5@1c6a6533", - "@opam/dune@opam:2.9.3@f57a6d69", "@opam/csexp@opam:1.5.1@8a8fb3a7" + "ocaml@4.12.1001@d41d8cd9", "@opam/result@opam:1.5@1c6a6533", + "@opam/dune@opam:2.9.3@4d52c673", "@opam/csexp@opam:1.5.1@8a8fb3a7" ] }, - "@opam/dune@opam:2.9.3@f57a6d69": { - "id": "@opam/dune@opam:2.9.3@f57a6d69", + "@opam/dune@opam:2.9.3@4d52c673": { + "id": "@opam/dune@opam:2.9.3@4d52c673", "name": "@opam/dune", "version": "opam:2.9.3", "source": { @@ -916,12 +887,12 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/base-unix@opam:base@87d0b2eb", + "ocaml@4.12.1001@d41d8cd9", "@opam/base-unix@opam:base@87d0b2eb", "@opam/base-threads@opam:base@36803084", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/base-unix@opam:base@87d0b2eb", + "ocaml@4.12.1001@d41d8cd9", "@opam/base-unix@opam:base@87d0b2eb", "@opam/base-threads@opam:base@36803084" ] }, @@ -943,64 +914,64 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69", + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69" + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673" ] }, - "@opam/cppo@opam:1.6.8@7e48217d": { - "id": "@opam/cppo@opam:1.6.8@7e48217d", + "@opam/cppo@opam:1.6.9@db929a12": { + "id": "@opam/cppo@opam:1.6.9@db929a12", "name": "@opam/cppo", - "version": "opam:1.6.8", + "version": "opam:1.6.9", "source": { "type": "install", "source": [ - "archive:https://opam.ocaml.org/cache/md5/fe/fed401197d86f9089e89f6cbdf1d660d#md5:fed401197d86f9089e89f6cbdf1d660d", - "archive:https://github.com/ocaml-community/cppo/archive/v1.6.8.tar.gz#md5:fed401197d86f9089e89f6cbdf1d660d" + "archive:https://opam.ocaml.org/cache/md5/d2/d23ffe85ac7dc8f0afd1ddf622770d09#md5:d23ffe85ac7dc8f0afd1ddf622770d09", + "archive:https://github.com/ocaml-community/cppo/archive/v1.6.9.tar.gz#md5:d23ffe85ac7dc8f0afd1ddf622770d09" ], "opam": { "name": "cppo", - "version": "1.6.8", - "path": "esy.lock/opam/cppo.1.6.8" + "version": "1.6.9", + "path": "esy.lock/opam/cppo.1.6.9" } }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69", + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673", "@opam/base-unix@opam:base@87d0b2eb", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69", + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673", "@opam/base-unix@opam:base@87d0b2eb" ] }, - "@opam/cmdliner@opam:1.1.0@643a0e00": { - "id": "@opam/cmdliner@opam:1.1.0@643a0e00", + "@opam/cmdliner@opam:1.1.1@03763729": { + "id": "@opam/cmdliner@opam:1.1.1@03763729", "name": "@opam/cmdliner", - "version": "opam:1.1.0", + "version": "opam:1.1.1", "source": { "type": "install", "source": [ - "archive:https://opam.ocaml.org/cache/sha512/e2/e2fad706829e7b8b50d1a510b59b87e44294252d8e8bdd9d6cb07f435d7c1c123f82353eedf29e9a4b7768da485516b89b62bf956234e90d7eae1bbaae2c9263#sha512:e2fad706829e7b8b50d1a510b59b87e44294252d8e8bdd9d6cb07f435d7c1c123f82353eedf29e9a4b7768da485516b89b62bf956234e90d7eae1bbaae2c9263", - "archive:https://erratique.ch/software/cmdliner/releases/cmdliner-1.1.0.tbz#sha512:e2fad706829e7b8b50d1a510b59b87e44294252d8e8bdd9d6cb07f435d7c1c123f82353eedf29e9a4b7768da485516b89b62bf956234e90d7eae1bbaae2c9263" + "archive:https://opam.ocaml.org/cache/sha512/54/5478ad833da254b5587b3746e3a8493e66e867a081ac0f653a901cc8a7d944f66e4387592215ce25d939be76f281c4785702f54d4a74b1700bc8838a62255c9e#sha512:5478ad833da254b5587b3746e3a8493e66e867a081ac0f653a901cc8a7d944f66e4387592215ce25d939be76f281c4785702f54d4a74b1700bc8838a62255c9e", + "archive:https://erratique.ch/software/cmdliner/releases/cmdliner-1.1.1.tbz#sha512:5478ad833da254b5587b3746e3a8493e66e867a081ac0f653a901cc8a7d944f66e4387592215ce25d939be76f281c4785702f54d4a74b1700bc8838a62255c9e" ], "opam": { "name": "cmdliner", - "version": "1.1.0", - "path": "esy.lock/opam/cmdliner.1.1.0" + "version": "1.1.1", + "path": "esy.lock/opam/cmdliner.1.1.1" } }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "ocaml@4.12.1001@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.12.0@d41d8cd9" ] + "devDependencies": [ "ocaml@4.12.1001@d41d8cd9" ] }, - "@opam/charInfo_width@opam:1.1.0@1a0889ea": { - "id": "@opam/charInfo_width@opam:1.1.0@1a0889ea", + "@opam/charInfo_width@opam:1.1.0@2e6806d6": { + "id": "@opam/charInfo_width@opam:1.1.0@2e6806d6", "name": "@opam/charInfo_width", "version": "opam:1.1.0", "source": { @@ -1017,19 +988,19 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/result@opam:1.5@1c6a6533", - "@opam/dune@opam:2.9.3@f57a6d69", - "@opam/camomile@opam:1.0.2@42017332", + "ocaml@4.12.1001@d41d8cd9", "@opam/result@opam:1.5@1c6a6533", + "@opam/dune@opam:2.9.3@4d52c673", + "@opam/camomile@opam:1.0.2@27671317", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/result@opam:1.5@1c6a6533", - "@opam/dune@opam:2.9.3@f57a6d69", - "@opam/camomile@opam:1.0.2@42017332" + "ocaml@4.12.1001@d41d8cd9", "@opam/result@opam:1.5@1c6a6533", + "@opam/dune@opam:2.9.3@4d52c673", + "@opam/camomile@opam:1.0.2@27671317" ] }, - "@opam/camomile@opam:1.0.2@42017332": { - "id": "@opam/camomile@opam:1.0.2@42017332", + "@opam/camomile@opam:1.0.2@27671317": { + "id": "@opam/camomile@opam:1.0.2@27671317", "name": "@opam/camomile", "version": "opam:1.0.2", "source": { @@ -1046,36 +1017,36 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69", + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69" + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673" ] }, - "@opam/bigarray-compat@opam:1.1.0@84cda9d0": { - "id": "@opam/bigarray-compat@opam:1.1.0@84cda9d0", - "name": "@opam/bigarray-compat", - "version": "opam:1.1.0", + "@opam/camlp-streams@opam:5.0.1@daaa0f94": { + "id": "@opam/camlp-streams@opam:5.0.1@daaa0f94", + "name": "@opam/camlp-streams", + "version": "opam:5.0.1", "source": { "type": "install", "source": [ - "archive:https://opam.ocaml.org/cache/sha256/43/434469a48d5c84e80d621b13d95eb067f8138c1650a1fd5ae6009a19b93718d5#sha256:434469a48d5c84e80d621b13d95eb067f8138c1650a1fd5ae6009a19b93718d5", - "archive:https://github.com/mirage/bigarray-compat/releases/download/v1.1.0/bigarray-compat-1.1.0.tbz#sha256:434469a48d5c84e80d621b13d95eb067f8138c1650a1fd5ae6009a19b93718d5" + "archive:https://opam.ocaml.org/cache/md5/af/afc874b25f7a1f13e8f5cfc1182b51a7#md5:afc874b25f7a1f13e8f5cfc1182b51a7", + "archive:https://github.com/ocaml/camlp-streams/archive/v5.0.1.tar.gz#md5:afc874b25f7a1f13e8f5cfc1182b51a7" ], "opam": { - "name": "bigarray-compat", - "version": "1.1.0", - "path": "esy.lock/opam/bigarray-compat.1.1.0" + "name": "camlp-streams", + "version": "5.0.1", + "path": "esy.lock/opam/camlp-streams.5.0.1" } }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69", + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69" + "ocaml@4.12.1001@d41d8cd9", "@opam/dune@opam:2.9.3@4d52c673" ] }, "@opam/base-unix@opam:base@87d0b2eb": { @@ -1127,11 +1098,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/ocamlfind@opam:1.9.3@781b30f3", + "ocaml@4.12.1001@d41d8cd9", "@opam/ocamlfind@opam:1.9.5@c23112ba", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/ocamlfind@opam:1.9.3@781b30f3" + "ocaml@4.12.1001@d41d8cd9", "@opam/ocamlfind@opam:1.9.5@c23112ba" ] }, "@opam/astring@opam:0.8.5@1300cee8": { @@ -1152,12 +1123,12 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.12.0@d41d8cd9", "@opam/topkg@opam:1.0.5@0aa59f51", - "@opam/ocamlfind@opam:1.9.3@781b30f3", + "ocaml@4.12.1001@d41d8cd9", "@opam/topkg@opam:1.0.5@0aa59f51", + "@opam/ocamlfind@opam:1.9.5@c23112ba", "@opam/ocamlbuild@opam:0.14.1@ead10f40", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "ocaml@4.12.0@d41d8cd9" ] + "devDependencies": [ "ocaml@4.12.1001@d41d8cd9" ] }, "@esy-ocaml/substs@0.0.1@d41d8cd9": { "id": "@esy-ocaml/substs@0.0.1@d41d8cd9", diff --git a/esy.lock/opam/bigarray-compat.1.1.0/opam b/esy.lock/opam/bigarray-compat.1.1.0/opam deleted file mode 100644 index 1754fc361..000000000 --- a/esy.lock/opam/bigarray-compat.1.1.0/opam +++ /dev/null @@ -1,26 +0,0 @@ -opam-version: "2.0" -maintainer: "Lucas Pluvinage " -authors: [ "Lucas Pluvinage " ] -license: "ISC" -homepage: "https://github.com/mirage/bigarray-compat" -bug-reports: "https://github.com/mirage/bigarray-compat/issues" -dev-repo: "git+https://github.com/mirage/bigarray-compat.git" -build: [ - ["dune" "subst"] {dev} - ["dune" "build" "-p" name "-j" jobs] -] -depends: [ - "ocaml" {>= "4.02.3"} - "dune" {>= "1.0"} -] -synopsis: - "Compatibility library to use Stdlib.Bigarray when possible" -url { - src: - "https://github.com/mirage/bigarray-compat/releases/download/v1.1.0/bigarray-compat-1.1.0.tbz" - checksum: [ - "sha256=434469a48d5c84e80d621b13d95eb067f8138c1650a1fd5ae6009a19b93718d5" - "sha512=7be283fd957ee168ce1e62835d22114da405e4b7da9619b4f2030a832d45ca210a0c8f1d1c57c92e224f3512308a8a0f0923b94f44b6f582acbe0e7728d179d4" - ] -} -x-commit-hash: "2ea842ba4ab2cfee7b711f7ad927917f3179a6f9" diff --git a/esy.lock/opam/camlp-streams.5.0.1/opam b/esy.lock/opam/camlp-streams.5.0.1/opam new file mode 100644 index 000000000..60e513116 --- /dev/null +++ b/esy.lock/opam/camlp-streams.5.0.1/opam @@ -0,0 +1,59 @@ +opam-version: "2.0" +synopsis: "The Stream and Genlex libraries for use with Camlp4 and Camlp5" +description: """ + +This package provides two library modules: +- Stream: imperative streams, with in-place update and memoization + of the latest element produced. +- Genlex: a small parameterized lexical analyzer producing streams + of tokens from streams of characters. + +The two modules are designed for use with Camlp4 and Camlp5: +- The stream patterns and stream expressions of Camlp4/Camlp5 consume + and produce data of type 'a Stream.t. +- The Genlex tokenizer can be used as a simple lexical analyzer for + Camlp4/Camlp5-generated parsers. + +The Stream module can also be used by hand-written recursive-descent +parsers, but is not very convenient for this purpose. + +The Stream and Genlex modules have been part of the OCaml standard library +for a long time, and have been distributed as part of the core OCaml system. +They will be removed from the OCaml standard library at some future point, +but will be maintained and distributed separately in this camlpstreams package. +""" +maintainer: [ + "Florian Angeletti " + "Xavier Leroy " +] +authors: ["Daniel de Rauglaudre" "Xavier Leroy"] +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" +homepage: "https://github.com/ocaml/camlp-streams" +bug-reports: "https://github.com/ocaml/camlp-streams/issues" +depends: [ + "dune" {>= "2.7"} + "ocaml" {>= "4.02.3"} + "odoc" {with-doc} +] +build: [ + ["dune" "subst"] {dev} + [ + "dune" + "build" + "-p" + name + "-j" + jobs + "@install" + "@runtest" {with-test} + "@doc" {with-doc} + ] +] +dev-repo: "git+https://github.com/ocaml/camlp-streams.git" +url { + src: "https://github.com/ocaml/camlp-streams/archive/v5.0.1.tar.gz" + checksum: [ + "md5=afc874b25f7a1f13e8f5cfc1182b51a7" + "sha512=2efa8dd4a636217c8d49bac1e4e7e5558fc2f45cfea66514140a59fd99dd08d61fb9f1e17804997ff648b71b13820a5d4a1eb70fed9d848aa2abd6e41f853c86" + ] +} diff --git a/esy.lock/opam/camomile.1.0.2/opam b/esy.lock/opam/camomile.1.0.2/opam index fc965c5ba..f8572c012 100644 --- a/esy.lock/opam/camomile.1.0.2/opam +++ b/esy.lock/opam/camomile.1.0.2/opam @@ -13,7 +13,7 @@ doc: "https://yoriyuki.github.io/Camomile/" bug-reports: "https://github.com/yoriyuki/Camomile/issues" depends: [ "dune" {>= "1.11"} - "ocaml" {>= "4.02.3"} + "ocaml" {>= "4.02.3" & < "5.0"} ] dev-repo: "git+https://github.com/yoriyuki/Camomile.git" build: [ diff --git a/esy.lock/opam/charInfo_width.1.1.0/opam b/esy.lock/opam/charInfo_width.1.1.0/opam index 9a930ea66..e87929b0e 100644 --- a/esy.lock/opam/charInfo_width.1.1.0/opam +++ b/esy.lock/opam/charInfo_width.1.1.0/opam @@ -14,7 +14,7 @@ depends: [ "result" "camomile" {>= "1.0.0" & < "2.0~"} "dune" - "ppx_expect" {with-test & < "v0.15"} + "ppx_expect" {with-test} ] synopsis: "Determine column width for a character" diff --git a/esy.lock/opam/cmdliner.1.1.0/opam b/esy.lock/opam/cmdliner.1.1.1/opam similarity index 61% rename from esy.lock/opam/cmdliner.1.1.0/opam rename to esy.lock/opam/cmdliner.1.1.1/opam index f8fd5923f..702b586b3 100644 --- a/esy.lock/opam/cmdliner.1.1.0/opam +++ b/esy.lock/opam/cmdliner.1.1.1/opam @@ -1,21 +1,6 @@ opam-version: "2.0" -synopsis: """Declarative definition of command line interfaces for OCaml""" -maintainer: ["Daniel Bünzli "] -authors: ["The cmdliner programmers"] -homepage: "https://erratique.ch/software/cmdliner" -doc: "https://erratique.ch/software/cmdliner/doc" -dev-repo: "git+https://erratique.ch/repos/cmdliner.git" -bug-reports: "https://github.com/dbuenzli/cmdliner/issues" -license: ["ISC"] -tags: ["cli" "system" "declarative" "org:erratique"] -depends: ["ocaml" {>= "4.08.0"}] -build: [[ make "all" "PREFIX=%{prefix}%" ]] -install: [[make "install" "LIBDIR=%{_:lib}%" "DOCDIR=%{_:doc}%"] - [make "install-doc" "LIBDIR=%{_:lib}%" "DOCDIR=%{_:doc}%"]] -url { - src: "https://erratique.ch/software/cmdliner/releases/cmdliner-1.1.0.tbz" - checksum: "sha512=e2fad706829e7b8b50d1a510b59b87e44294252d8e8bdd9d6cb07f435d7c1c123f82353eedf29e9a4b7768da485516b89b62bf956234e90d7eae1bbaae2c9263"} -description: """ +synopsis: "Declarative definition of command line interfaces for OCaml" +description: """\ Cmdliner allows the declarative definition of command line interfaces for OCaml. @@ -30,4 +15,25 @@ Cmdliner has no dependencies and is distributed under the ISC license. [1]: http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap12.html [2]: http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html -Home page: http://erratique.ch/software/cmdliner""" \ No newline at end of file +Home page: http://erratique.ch/software/cmdliner""" +maintainer: "Daniel Bünzli " +authors: "The cmdliner programmers" +license: "ISC" +tags: ["cli" "system" "declarative" "org:erratique"] +homepage: "https://erratique.ch/software/cmdliner" +doc: "https://erratique.ch/software/cmdliner/doc" +bug-reports: "https://github.com/dbuenzli/cmdliner/issues" +depends: [ + "ocaml" {>= "4.08.0"} +] +build: [make "all" "PREFIX=%{prefix}%"] +install: [ + [make "install" "LIBDIR=%{_:lib}%" "DOCDIR=%{_:doc}%"] + [make "install-doc" "LIBDIR=%{_:lib}%" "DOCDIR=%{_:doc}%"] +] +dev-repo: "git+https://erratique.ch/repos/cmdliner.git" +url { + src: "https://erratique.ch/software/cmdliner/releases/cmdliner-1.1.1.tbz" + checksum: + "sha512=5478ad833da254b5587b3746e3a8493e66e867a081ac0f653a901cc8a7d944f66e4387592215ce25d939be76f281c4785702f54d4a74b1700bc8838a62255c9e" +} \ No newline at end of file diff --git a/esy.lock/opam/cppo.1.6.8/opam b/esy.lock/opam/cppo.1.6.9/opam similarity index 58% rename from esy.lock/opam/cppo.1.6.8/opam rename to esy.lock/opam/cppo.1.6.9/opam index c9d7f68f7..9c51ec6d8 100644 --- a/esy.lock/opam/cppo.1.6.8/opam +++ b/esy.lock/opam/cppo.1.6.9/opam @@ -1,37 +1,39 @@ opam-version: "2.0" -maintainer: "martin@mjambon.com" +synopsis: "Code preprocessor like cpp for OCaml" +description: """\ +Cppo is an equivalent of the C preprocessor for OCaml programs. +It allows the definition of simple macros and file inclusion. + +Cppo is: + +* more OCaml-friendly than cpp +* easy to learn without consulting a manual +* reasonably fast +* simple to install and to maintain""" +maintainer: [ + "Martin Jambon " "Yishuai Li " +] authors: "Martin Jambon" license: "BSD-3-Clause" homepage: "https://github.com/ocaml-community/cppo" -doc: "https://ocaml-community.github.io/cppo/" +doc: "https://ocaml-community.github.io/cppo" bug-reports: "https://github.com/ocaml-community/cppo/issues" depends: [ "ocaml" {>= "4.02.3"} - "dune" {>= "1.0"} + "dune" {>= "1.10"} "base-unix" ] build: [ ["dune" "subst"] {dev} ["dune" "build" "-p" name "-j" jobs] ["dune" "runtest" "-p" name "-j" jobs] {with-test} + ["dune" "build" "-p" name "@doc"] {with-doc} ] dev-repo: "git+https://github.com/ocaml-community/cppo.git" -synopsis: "Code preprocessor like cpp for OCaml" -description: """ -Cppo is an equivalent of the C preprocessor for OCaml programs. -It allows the definition of simple macros and file inclusion. - -Cppo is: - -* more OCaml-friendly than cpp -* easy to learn without consulting a manual -* reasonably fast -* simple to install and to maintain -""" url { - src: "https://github.com/ocaml-community/cppo/archive/v1.6.8.tar.gz" + src: "https://github.com/ocaml-community/cppo/archive/v1.6.9.tar.gz" checksum: [ - "md5=fed401197d86f9089e89f6cbdf1d660d" - "sha512=069bbe0ef09c03b0dc4b5795f909c3ef872fe99c6f1e6704a0fa97594b1570b3579226ec67fe11d696ccc349a4585055bbaf07c65eff423aa45af28abf38c858" + "md5=d23ffe85ac7dc8f0afd1ddf622770d09" + "sha512=26ff5a7b7f38c460661974b23ca190f0feae3a99f1974e0fd12ccf08745bd7d91b7bc168c70a5385b837bfff9530e0e4e41cf269f23dd8cf16ca658008244b44" ] -} +} \ No newline at end of file diff --git a/esy.lock/opam/dune.2.9.3/opam b/esy.lock/opam/dune.2.9.3/opam index dc3b456ba..056c52674 100644 --- a/esy.lock/opam/dune.2.9.3/opam +++ b/esy.lock/opam/dune.2.9.3/opam @@ -36,15 +36,13 @@ conflicts: [ ] dev-repo: "git+https://github.com/ocaml/dune.git" build: [ - # opam 2 sets OPAM_SWITCH_PREFIX, so we don't need a hardcoded path - ["ocaml" "configure.ml" "--libdir" lib] {opam-version < "2"} ["ocaml" "bootstrap.ml" "-j" jobs] ["./dune.exe" "build" "-p" name "--profile" "dune-bootstrap" "-j" jobs] ] depends: [ # Please keep the lower bound in sync with .github/workflows/workflow.yml, # dune-project and min_ocaml_version in bootstrap.ml - ("ocaml" {>= "4.08"} | ("ocaml" {< "4.08~~"} & "ocamlfind-secondary")) + ("ocaml" {>= "4.08" & < "5.0"} | ("ocaml" {< "4.08~~"} & "ocamlfind-secondary")) "base-unix" "base-threads" ] diff --git a/esy.lock/opam/lambda-term.3.2.0/opam b/esy.lock/opam/lambda-term.3.2.0/opam index a9d3f9669..8f21a6ab1 100644 --- a/esy.lock/opam/lambda-term.3.2.0/opam +++ b/esy.lock/opam/lambda-term.3.2.0/opam @@ -18,7 +18,7 @@ depends: [ "lwt" {>= "4.0.0"} "lwt_log" "react" - "zed" {>= "3.1.0" & < "4.0"} + "zed" {>= "3.1.0" & < "3.2.0"} "camomile" {>= "1.0.1"} "lwt_react" "mew_vi" {>= "0.5.0" & < "0.6.0"} diff --git a/esy.lock/opam/lwt.5.5.0/opam b/esy.lock/opam/lwt.5.6.1/opam similarity index 67% rename from esy.lock/opam/lwt.5.5.0/opam rename to esy.lock/opam/lwt.5.6.1/opam index ae278f864..fa437b76b 100644 --- a/esy.lock/opam/lwt.5.5.0/opam +++ b/esy.lock/opam/lwt.5.6.1/opam @@ -20,12 +20,8 @@ depends: [ "cppo" {build & >= "1.1.0"} "dune" {>= "1.8.0"} "dune-configurator" - "mmap" {>= "1.1.0" & "os" != "win32"} # mmap is needed as long as Lwt supports OCaml < 4.06.0. - "ocaml" {>= "4.02.0" & "os" != "win32 " | >= "4.06.0"} - ("ocaml" {>= "4.08.0"} | "ocaml-syntax-shims") + "ocaml" {>= "4.08"} "ocplib-endian" - "result" # result is needed as long as Lwt supports OCaml 4.02. - "seq" # seq is needed as long as Lwt supports OCaml < 4.07.0. # Until https://github.com/aantron/bisect_ppx/pull/327. # "bisect_ppx" {dev & >= "2.0.0"} @@ -38,10 +34,6 @@ depopts: [ "conf-libev" ] -conflicts: [ - "ocaml-variants" {= "4.02.1+BER"} -] - build: [ ["dune" "exec" "-p" name "src/unix/config/discover.exe" "--" "--save" "--use-libev" "%{conf-libev:installed}%"] @@ -57,9 +49,9 @@ Meanwhile, OCaml code, including code creating and waiting on promises, runs in a single thread by default. This reduces the need for locks or other synchronization primitives. Code can be run in parallel on an opt-in basis." url { - src: "https://github.com/ocsigen/lwt/archive/refs/tags/5.5.0.tar.gz" + src: "https://github.com/ocsigen/lwt/archive/5.6.1.tar.gz" checksum: [ - "md5=94272fac89c5bf21a89c102b8a8f35a5" - "sha512=8951b94555e930634375816d71815b9d85daad6ffb7dab24864661504d11be26575ab0b237196c54693efa372a9b69cdc1d5068a20a250dc0bbb4a3c03c5fda1" + "md5=279024789a0ec84a9d97d98bad847f97" + "sha512=698875bd3bfcd5baa47eb48e412f442d289f9972421321541860ebe110b9af1949c3fbc253768495726ec547fe4ba25483cd97ff39bc668496fba95b2ed9edd8" ] } diff --git a/esy.lock/opam/lwt_log.1.1.1/opam b/esy.lock/opam/lwt_log.1.1.1/opam index 631c0c720..90b227c50 100644 --- a/esy.lock/opam/lwt_log.1.1.1/opam +++ b/esy.lock/opam/lwt_log.1.1.1/opam @@ -15,6 +15,7 @@ maintainer: "Anton Bachin " dev-repo: "git+https://github.com/ocsigen/lwt_log.git" depends: [ + "ocaml" {< "5.0"} "dune" {>= "1.0"} "lwt" {>= "4.0.0"} ] diff --git a/esy.lock/opam/lwt_react.1.1.5/opam b/esy.lock/opam/lwt_react.1.2.0/opam similarity index 63% rename from esy.lock/opam/lwt_react.1.1.5/opam rename to esy.lock/opam/lwt_react.1.2.0/opam index ca290f1c1..b3435cb1b 100644 --- a/esy.lock/opam/lwt_react.1.1.5/opam +++ b/esy.lock/opam/lwt_react.1.2.0/opam @@ -17,17 +17,18 @@ dev-repo: "git+https://github.com/ocsigen/lwt.git" depends: [ "dune" {>= "1.8.0"} "lwt" {>= "3.0.0"} - "ocaml" + "ocaml" {>= "4.08"} "react" {>= "1.0.0"} + "cppo" {build & >= "1.1.0"} ] build: [ ["dune" "build" "-p" name "-j" jobs] ] url { - src: "https://github.com/ocsigen/lwt/archive/refs/tags/5.5.0.tar.gz" + src: "https://github.com/ocsigen/lwt/archive/5.6.0.tar.gz" checksum: [ - "md5=94272fac89c5bf21a89c102b8a8f35a5" - "sha512=8951b94555e930634375816d71815b9d85daad6ffb7dab24864661504d11be26575ab0b237196c54693efa372a9b69cdc1d5068a20a250dc0bbb4a3c03c5fda1" + "md5=e63979ee40a80d5b9e9e5545f33323b4" + "sha512=d616389bc9e0da11f25843ab7541ac2d40c9543700a89455f14115b339bbe58cef2b8acf0ae97fd54e15a4cb93149cfe1ebfda301aa93933045f76b7d9344160" ] } diff --git a/esy.lock/opam/merlin-extend.0.6/opam b/esy.lock/opam/merlin-extend.0.6.1/opam similarity index 73% rename from esy.lock/opam/merlin-extend.0.6/opam rename to esy.lock/opam/merlin-extend.0.6.1/opam index 8394e1ac5..9f9936505 100644 --- a/esy.lock/opam/merlin-extend.0.6/opam +++ b/esy.lock/opam/merlin-extend.0.6.1/opam @@ -19,12 +19,12 @@ description: """ This protocol allows to replace the OCaml frontend of Merlin. It extends what used to be done with the `-pp' flag to handle a few more cases.""" doc: "https://let-def.github.io/merlin-extend" -x-commit-hash: "640620568a5f5c7798239ecf7c707c813e3df3cf" url { src: - "https://github.com/let-def/merlin-extend/releases/download/v0.6/merlin-extend-v0.6.tbz" + "https://github.com/let-def/merlin-extend/releases/download/v0.6.1/merlin-extend-0.6.1.tbz" checksum: [ - "sha256=c2f236ae97feb6ba0bc90f33beb7b7343e42f9871b66de9ba07974917e256c43" - "sha512=4c64a490e2ece04fc89aef679c1d9202175df4fe045b5fdc7a37cd7cebe861226fddd9648c1bf4f06175ecfcd2ed7686c96bd6a8cae003a5096f6134c240f857" + "sha256=5ec84b355ddb2d129a5948b132bfacc93adcbde2158c7de695f7bfc3650bead7" + "sha512=631fc96aab2f35e12a078c9b4907ca7b0db9f1e3a4026040e6c23b82e0171c256a89fb5d4c887f1d156eb9e3152783cdf7a546b2496051007a1bcf5777417396" ] } +x-commit-hash: "cf2707bbe8e034c6ecf5d0fecd3fd889f6ab14bf" diff --git a/esy.lock/opam/mmap.1.2.0/opam b/esy.lock/opam/mmap.1.2.0/opam deleted file mode 100644 index c4a86edbb..000000000 --- a/esy.lock/opam/mmap.1.2.0/opam +++ /dev/null @@ -1,29 +0,0 @@ -opam-version: "2.0" -maintainer: "jeremie@dimino.org" -authors: ["Jérémie Dimino " "Anton Bachin" ] -homepage: "https://github.com/mirage/mmap" -bug-reports: "https://github.com/mirage/mmap/issues" -doc: "https://mirage.github.io/mmap/" -dev-repo: "git+https://github.com/mirage/mmap.git" -license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" -build: [ - ["dune" "build" "-p" name "-j" jobs] -] -depends: [ - "ocaml" {>= "4.02.3"} - "dune" {>= "1.6"} - "bigarray-compat" -] -synopsis: "File mapping functionality" -description: """ -This project provides a Mmap.map_file functions for mapping files in memory. -""" -url { - src: - "https://github.com/mirage/mmap/releases/download/v1.2.0/mmap-1.2.0.tbz" - checksum: [ - "sha256=1602a8abc8e232fa94771a52e540e5780b40c2f2762eee6afbd9286502116ddb" - "sha512=474a70b0de57bb31f56fe3a9e410dcc482d3c0abd791809cf103273a7ce347d6d23912920f66d60e95d1113c3ec023f2903bc0f71150a1a9eb49c24928bf7bb2" - ] -} -x-commit-hash: "b5efb79871d290072a17f755566c8288cf069e4f" diff --git a/esy.lock/opam/ocamlfind.1.9.5/files/0001-Fix-bug-when-installing-with-a-system-compiler.patch b/esy.lock/opam/ocamlfind.1.9.5/files/0001-Fix-bug-when-installing-with-a-system-compiler.patch new file mode 100644 index 000000000..c05089900 --- /dev/null +++ b/esy.lock/opam/ocamlfind.1.9.5/files/0001-Fix-bug-when-installing-with-a-system-compiler.patch @@ -0,0 +1,26 @@ +From f53247f546375972789b96c3f612cd7f524bf2aa Mon Sep 17 00:00:00 2001 +From: Louis Gesbert +Date: Mon, 11 Jul 2022 18:12:18 +0200 +Subject: [PATCH] Fix bug when installing with a system compiler + +See https://discuss.ocaml.org/t/problem-installing-ocamlfind-on-latest-ocamlpro-alpine-docker-image/10147 +--- + src/findlib/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/findlib/Makefile b/src/findlib/Makefile +index 84514b6f22..ea23f4a10c 100644 +--- a/src/findlib/Makefile ++++ b/src/findlib/Makefile +@@ -123,7 +123,7 @@ clean: + install: all + $(INSTALLDIR) "$(DESTDIR)$(prefix)$(OCAML_SITELIB)/$(NAME)" + $(INSTALLDIR) "$(DESTDIR)$(prefix)$(OCAMLFIND_BIN)" +- $(INSTALLDIR) "$(DESTDIR)$(prefix)$(OCAML_CORE_STDLIB)" ++ test $(INSTALL_TOPFIND) -eq 0 || $(INSTALLDIR) "$(DESTDIR)$(prefix)$(OCAML_CORE_STDLIB)" + test $(INSTALL_TOPFIND) -eq 0 || $(INSTALLFILE) topfind "$(DESTDIR)$(prefix)$(OCAML_CORE_STDLIB)/" + files=`$(SH) $(TOP)/tools/collect_files $(TOP)/Makefile.config \ + findlib.cmi findlib.mli findlib.cma findlib.cmxa findlib$(LIB_SUFFIX) findlib.cmxs \ +-- +2.35.1 + diff --git a/esy.lock/opam/ocamlfind.1.9.3/opam b/esy.lock/opam/ocamlfind.1.9.5/opam similarity index 72% rename from esy.lock/opam/ocamlfind.1.9.3/opam rename to esy.lock/opam/ocamlfind.1.9.5/opam index 971a203f1..73b6d69f8 100644 --- a/esy.lock/opam/ocamlfind.1.9.3/opam +++ b/esy.lock/opam/ocamlfind.1.9.5/opam @@ -34,11 +34,14 @@ install: [ [make "install"] ["install" "-m" "0755" "ocaml-stub" "%{bin}%/ocaml"] {ocaml:preinstalled} ] +extra-files: ["0001-Fix-bug-when-installing-with-a-system-compiler.patch" "md5=130d3d6fe399948ed7991b7756f50dc3"] +patches: ["0001-Fix-bug-when-installing-with-a-system-compiler.patch"] dev-repo: "git+https://github.com/ocaml/ocamlfind.git" url { - src: "http://download.camlcity.org/download/findlib-1.9.3.tar.gz" + src: "http://download.camlcity.org/download/findlib-1.9.5.tar.gz" checksum: [ - "md5=24047dd8a0da5322253de9b7aa254e42" - "sha512=27cc4ce141576bf477fb9d61a82ad65f55478740eed59fb43f43edb794140829fd2ff89ad27d8a890cfc336b54c073a06de05b31100fc7c01cacbd7d88e928ea" + "md5=8b893525ce36cb3d4d4952483bcc7cf4" + "sha512=03514c618a16b02889db997c6c4789b3436b3ad7d974348d2c6dea53eb78898ab285ce5f10297c074bab4fd2c82931a8b7c5c113b994447a44abb30fca74c715" ] } + diff --git a/esy.lock/opam/odoc-parser.1.0.0/opam b/esy.lock/opam/odoc-parser.1.0.1/opam similarity index 78% rename from esy.lock/opam/odoc-parser.1.0.0/opam rename to esy.lock/opam/odoc-parser.1.0.1/opam index cbf8c8b60..6b61ea102 100644 --- a/esy.lock/opam/odoc-parser.1.0.0/opam +++ b/esy.lock/opam/odoc-parser.1.0.1/opam @@ -18,6 +18,7 @@ depends: [ "ocaml" {>= "4.02.0"} "astring" "result" + "camlp-streams" "ppx_expect" {with-test} ("ocaml" {< "4.04.1" & with-test} | "sexplib0" {with-test}) ] @@ -36,11 +37,11 @@ build: [ ] url { src: - "https://github.com/ocaml-doc/odoc-parser/releases/download/1.0.0/odoc-parser-1.0.0.tbz" + "https://github.com/ocaml-doc/odoc-parser/releases/download/1.0.1/odoc-parser-1.0.1.tbz" checksum: [ - "sha256=b6aa08ea71a9ebad9b2bebc4da1eda0d713cf3674e6d57d10459d934286e7aa1" - "sha512=b5caee3a0d288aeaa95e3f32de8e5f75f169ad2691d75f8d6c932e4fb0e6cb188813ac2d92d4076fe75b12217130e6999c46e7890cf0fa765070870f85a96d63" + "sha256=a2bbe8e4201b60e980bab01e96e41f2ba0b05ba3f50b44f75837e8a2fb907d2c" + "sha512=c3339aae880ce72df866746d9ed9e7d38a752bf994ba24e948c086349604007e39602a1c31cf2ddb61ac8f8dc9dceccca43fe185850b83e3a02d75121f9ddfe2" ] } -x-commit-hash: "b13ffc2f30ca20ca5bb733be4f630d46bd274fd6" +x-commit-hash: "216e3234b57bf194e65e14200e43607cc4e47da6" diff --git a/esy.lock/opam/odoc.2.1.0/opam b/esy.lock/opam/odoc.2.1.1/opam similarity index 74% rename from esy.lock/opam/odoc.2.1.0/opam rename to esy.lock/opam/odoc.2.1.1/opam index 6b1df40dc..005d6043f 100644 --- a/esy.lock/opam/odoc.2.1.0/opam +++ b/esy.lock/opam/odoc.2.1.1/opam @@ -23,7 +23,7 @@ delimited with `(** ... *)`, and outputs HTML. """ depends: [ - "odoc-parser" {>= "0.9.0"} + "odoc-parser" {>= "0.9.0" & < "2.0.0"} "astring" "cmdliner" {>= "1.0.0"} "cppo" {build & >= "1.1.0"} @@ -35,7 +35,7 @@ depends: [ "fmt" "ocamlfind" {with-test} - "yojson" {with-test} + "yojson" {< "2.0.0" & with-test} ("ocaml" {< "4.04.1" & with-test} | "sexplib0" {with-test}) "conf-jq" {with-test} @@ -51,10 +51,10 @@ build: [ ["dune" "build" "-p" name "-j" jobs] ] url { - src: "https://github.com/ocaml/odoc/releases/download/2.1.0/odoc-2.1.0.tbz" + src: "https://github.com/ocaml/odoc/releases/download/2.1.1/odoc-2.1.1.tbz" checksum: [ - "sha256=65a2523a50ee368164f1f24f75866a6a36cdb0d00039c3006ec824351d4e4967" - "sha512=cf4d7e884b94a9b9c4bcb62d4423d7289d7bbbf2642c5eacf9577b76eb835cf6ecc79d2384d36d174d2e9d8f758b5082c0c4bf8f66b5c6db4e9805dc3fc9ee1a" + "sha256=f574dbd28cd0fc3a2b95525c4bb95ddf6d1f6408bb4fe12157fa537884f987fd" + "sha512=1c545c281a7022a167f028fff8cec6fb3f2f82da0881431be74e7a4281c5353ed83bfbdb4d9d9e08af6755dbe3505c052c5e5b58cdeb08c57aed5e89c0f15e91" ] } -x-commit-hash: "d654ee2a4ff3e1465dcf92b882c26de71f7a9986" +x-commit-hash: "f556f10aa67f80e83d1e3e66c4b478e8efe4e18d" diff --git a/esy.lock/opam/re.1.10.3/opam b/esy.lock/opam/re.1.10.4/opam similarity index 66% rename from esy.lock/opam/re.1.10.3/opam rename to esy.lock/opam/re.1.10.4/opam index c65d450f4..9dad66137 100644 --- a/esy.lock/opam/re.1.10.3/opam +++ b/esy.lock/opam/re.1.10.4/opam @@ -8,19 +8,19 @@ authors: [ "Rudi Grinberg" "Gabriel Radanne" ] -license: "LGPL-2.0 with OCaml linking exception" +license: "LGPL-2.0-or-later WITH OCaml-LGPL-linking-exception" homepage: "https://github.com/ocaml/ocaml-re" bug-reports: "https://github.com/ocaml/ocaml-re/issues" dev-repo: "git+https://github.com/ocaml/ocaml-re.git" build: [ - ["dune" "subst"] {pinned} + ["dune" "subst"] {dev} ["dune" "build" "-p" name "-j" jobs] ["dune" "runtest" "-p" name "-j" jobs] {with-test} ] depends: [ - "ocaml" {>= "4.02"} + "ocaml" {>= "4.03"} "dune" {>= "2.0"} "ounit" {with-test} "seq" @@ -37,10 +37,10 @@ Pure OCaml regular expressions with: """ url { src: - "https://github.com/ocaml/ocaml-re/releases/download/1.10.3/re-1.10.3.tbz" + "https://github.com/ocaml/ocaml-re/releases/download/1.10.4/re-1.10.4.tbz" checksum: [ - "sha256=846546967f3fe31765935dd40a6460a9424337ecce7b12727fcba49480790ebb" - "sha512=d02103b7b8b8d8bc797341dcc933554745427f3c1b51b54b4ac9ff81badfd68c94726c57548b08e00ca99f3e09741b54b6500e97c19fc0e8fcefd6dfbe71da7f" + "sha256=83eb3e4300aa9b1dc7820749010f4362ea83524742130524d78c20ce99ca747c" + "sha512=92b05cf92c389fa8c753f2acca837b15dd05a4a2e8e2bec7a269d2e14c35b1a786d394258376648f80b4b99250ba1900cfe68230b8385aeac153149d9ce56099" ] } -x-commit-hash: "c5d5df80e128c3d7646b7d8b1322012c5fcc35f3" +x-commit-hash: "e9a4cecb8294c1839db18b1d0c30e755ec85ed5e" diff --git a/esy.lock/opam/utop.2.8.0/opam b/esy.lock/opam/utop.2.9.2/opam similarity index 68% rename from esy.lock/opam/utop.2.8.0/opam rename to esy.lock/opam/utop.2.9.2/opam index 4bd56d125..c3ff53106 100644 --- a/esy.lock/opam/utop.2.8.0/opam +++ b/esy.lock/opam/utop.2.9.2/opam @@ -1,16 +1,22 @@ opam-version: "2.0" +synopsis: "Universal toplevel for OCaml" +description: """\ +utop is an improved toplevel (i.e., Read-Eval-Print Loop or REPL) for +OCaml. It can run in a terminal or in Emacs. It supports line +edition, history, real-time and context sensitive completion, colors, +and more. It integrates with the Tuareg mode in Emacs.""" maintainer: "jeremie@dimino.org" authors: "Jérémie Dimino" license: "BSD-3-Clause" homepage: "https://github.com/ocaml-community/utop" -bug-reports: "https://github.com/ocaml-community/utop/issues" doc: "https://ocaml-community.github.io/utop/" +bug-reports: "https://github.com/ocaml-community/utop/issues" depends: [ - "ocaml" {>= "4.03.0" & < "4.14"} + "ocaml" {>= "4.03.0"} "base-unix" "base-threads" "ocamlfind" {>= "1.7.2"} - "lambda-term" {>= "3.1.0" & < "4.0"} + "lambda-term" {>= "3.1.0" & < "3.3.0"} "lwt" "lwt_react" "camomile" @@ -24,19 +30,11 @@ build: [ ["dune" "runtest" "-p" name "-j" jobs] {with-test} ] dev-repo: "git+https://github.com/ocaml-community/utop.git" -synopsis: "Universal toplevel for OCaml" -description: """ -utop is an improved toplevel (i.e., Read-Eval-Print Loop or REPL) for -OCaml. It can run in a terminal or in Emacs. It supports line -edition, history, real-time and context sensitive completion, colors, -and more. It integrates with the Tuareg mode in Emacs. -""" -x-commit-hash: "c87b8b2817eefd0cd53564618911386b89b587c5" url { src: - "https://github.com/ocaml-community/utop/releases/download/2.8.0/utop-2.8.0.tbz" + "https://github.com/ocaml-community/utop/releases/download/2.9.2/utop-2.9.2.tbz" checksum: [ - "sha256=4d2cb88ce598122198726a74274395dd22eacf0a18d9ac24e3047fe962382556" - "sha512=22cdc75e14950eac28d6e0b7b2c6d686aea4e24d9955f140bfcbdef2de033e59f94ab3da0c5c95e1ce51211759694b55c82eec16776c3e0cfb80aa77e64a380b" + "md5=abd1c592464ce5f31b17009954040d7c" + "sha512=db97275aa4bd7725a9eeec6d9155c239f3e48adf8d34b73f55caa2de32fde98862480db5e05dffc89e98efd12eb60e08d89ad34b9a92a8de0d37ccb32af07ddf" ] -} +} \ No newline at end of file diff --git a/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.3_opam_override/files/findlib.patch b/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.5_opam_override/files/findlib.patch similarity index 100% rename from esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.3_opam_override/files/findlib.patch rename to esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.5_opam_override/files/findlib.patch diff --git a/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.3_opam_override/package.json b/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.5_opam_override/package.json similarity index 100% rename from esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.3_opam_override/package.json rename to esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.5_opam_override/package.json From da9a7688da12657ced932432b7360aea5df4e07d Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Mon, 22 Aug 2022 15:06:27 +0200 Subject: [PATCH 07/30] Try to break less cases --- src/reason-parser/reason_pprint_ast.ml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/reason-parser/reason_pprint_ast.ml b/src/reason-parser/reason_pprint_ast.ml index 9a0d60219..f77d29930 100644 --- a/src/reason-parser/reason_pprint_ast.ml +++ b/src/reason-parser/reason_pprint_ast.ml @@ -6587,7 +6587,7 @@ let printer = object(self:'self) | [] -> toThis | _::_ -> makeList ~postSpace:true (List.concat [self#attributes l; [toThis]]) - method attach_std_item_attrs ?(allowUncurry=true) ?extension l toThis = + method attach_std_item_attrs ?(break=Layout.Always_rec) ?(allowUncurry=true) ?extension l toThis = let l = (partitionAttributes ~allowUncurry l).stdAttrs in match extension, l with | None, [] -> toThis @@ -6597,7 +6597,7 @@ let printer = object(self:'self) | Some id -> [atom ("%" ^ id.txt)] in makeList - ~postSpace:true ~indent:0 ~break:Layout.IfNeed ~inline:(true, true) + ~postSpace:true ~indent:0 ~break ~inline:(true, true) (extension @ List.map self#item_attribute l @ [toThis]) method exception_declaration ed = @@ -7776,7 +7776,7 @@ let printer = object(self:'self) in let item = self#structure_item item in let layout = - self#attach_std_item_attrs ~extension stdAttrs item + self#attach_std_item_attrs ~break:Layout.IfNeed ~extension stdAttrs item in makeList ~wrap:("[", "]") ((List.map self#attribute docAttrs) @ [layout]) end From 70c8329aab5b21187d554c64a70edf88cd2906a2 Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Fri, 7 Oct 2022 16:47:28 +0200 Subject: [PATCH 08/30] Toplevel module with extension break if needed --- formatTest/unit_tests/expected_output/extensions.re | 9 +++------ src/reason-parser/reason_pprint_ast.ml | 3 ++- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/formatTest/unit_tests/expected_output/extensions.re b/formatTest/unit_tests/expected_output/extensions.re index fb702a472..e7840e3d8 100644 --- a/formatTest/unit_tests/expected_output/extensions.re +++ b/formatTest/unit_tests/expected_output/extensions.re @@ -1,13 +1,10 @@ /* Extension sugar */ -%extend -open M; +[%extend open M]; -%extend -module M = {}; +[%extend module M = {}]; -%extend -module type M = {}; +[%extend module type M = {}]; type a = [%extend int]; diff --git a/src/reason-parser/reason_pprint_ast.ml b/src/reason-parser/reason_pprint_ast.ml index f77d29930..5e8062344 100644 --- a/src/reason-parser/reason_pprint_ast.ml +++ b/src/reason-parser/reason_pprint_ast.ml @@ -7554,7 +7554,7 @@ let printer = object(self:'self) s in makeList - ~break:Always_rec + ~break:Layout.IfNeed ~inline:(true, false) ~wrap ~postSpace:true @@ -7769,6 +7769,7 @@ let printer = object(self:'self) | Pstr_attribute a -> self#floating_attribute a | Pstr_extension ((extension, PStr [item]), attrs) -> begin match item.pstr_desc with + (* In case of bindings, the extension gets inlined `let%lwt a = 1` *) | Pstr_value (rf, l) -> self#bindings ~extension (rf, l) | _ -> let {stdAttrs; docAttrs} = From d480558eeef264061ba202059459a5deb9491125 Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Fri, 7 Oct 2022 19:37:06 +0200 Subject: [PATCH 09/30] Add last sequence of let binding to be inlined an attribute --- src/reason-parser/reason_pprint_ast.ml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/reason-parser/reason_pprint_ast.ml b/src/reason-parser/reason_pprint_ast.ml index 5e8062344..8060b9579 100644 --- a/src/reason-parser/reason_pprint_ast.ml +++ b/src/reason-parser/reason_pprint_ast.ml @@ -2001,7 +2001,7 @@ let tyvar ppf str = *) let constant ?raw_literal ?(parens=true) ppf = function | Pconst_char i -> - Format.fprintf ppf "%C" i + Format.fprintf ppf "%C" i | Pconst_string (i, _, None) -> begin match raw_literal with | Some text -> @@ -5005,7 +5005,6 @@ let printer = object(self:'self) argsAndReturn [] cl - (* Returns the arguments list (if any, that occur before the =>), and the final expression (that is either returned from the function (after =>) or @@ -5514,9 +5513,6 @@ let printer = object(self:'self) partitionAttributes ~allowUncurry:false expr.pexp_attributes in match (stdAttrs, expr.pexp_desc) with - | ([], Pexp_extension desc ) -> - let layout = self#extension desc in - (expr.pexp_loc, layout)::acc | ([], Pexp_let (rf, l, e)) -> (* For "letList" bindings, the start/end isn't as simple as with * module value bindings. For "let lists", the sequences were formed @@ -5599,6 +5595,9 @@ let printer = object(self:'self) let loc = e1.pexp_loc in let layout = source_map ~loc e1Layout in processLetList ((loc, layout)::acc) e2 + | ([], Pexp_apply (e, _)) -> + let layout = self#attach_std_item_attrs [] (self#unparseExpr e) in + (expr.pexp_loc, layout)::acc | _ -> let expr = { expr with pexp_attributes = (arityAttrs @ stdAttrs @ jsxAttrs) } in @@ -5609,8 +5608,9 @@ let printer = object(self:'self) let layout = source_map ~loc:bindingsLoc bindingsLayout in processLetList ((extractLocationFromValBindList expr l, layout)::acc) e | Some (extension, e) -> - let layout = self#attach_std_item_attrs ~extension [] (self#unparseExpr e) in - (expr.pexp_loc, layout)::acc + let layout = self#attach_std_item_attrs ~break:Layout.IfNeed ~extension [] (self#unparseExpr e) in + let inline_extension = makeList ~wrap:("[", "]") [layout] in + (expr.pexp_loc, inline_extension)::acc | None -> (* Should really do something to prevent infinite loops here. Never allowing a top level call into letList to recurse back to @@ -6634,7 +6634,7 @@ let printer = object(self:'self) *) method method_sig_flags_for s = function | Virtual -> [atom "virtual"; atom s] - | Concrete -> [atom s] + | Concrete -> [atom s] method value_type_flags_for s = function | (Virtual, Mutable) -> [atom "virtual"; atom "mutable"; atom s] @@ -7529,7 +7529,8 @@ let printer = object(self:'self) in source_map ~loc:x.pmty_loc pmty - method simple_module_expr ?(hug=false) x = match x.pmod_desc with + method simple_module_expr ?(hug=false) x = + match x.pmod_desc with | Pmod_unpack e -> let exprLayout = match e.pexp_desc with | Pexp_constraint (e, {ptyp_desc = Ptyp_package(lid, cstrs)}) -> From 96627dcb0b9ae5b1ee1f1436ec4680c137d6cfb9 Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Sat, 8 Oct 2022 09:27:46 +0200 Subject: [PATCH 10/30] Change attach_std_item_attrs instead of case by case --- src/reason-parser/reason_pprint_ast.ml | 126 ++++++++++++++++++++++++- 1 file changed, 122 insertions(+), 4 deletions(-) diff --git a/src/reason-parser/reason_pprint_ast.ml b/src/reason-parser/reason_pprint_ast.ml index 8060b9579..b901e2500 100644 --- a/src/reason-parser/reason_pprint_ast.ml +++ b/src/reason-parser/reason_pprint_ast.ml @@ -70,6 +70,124 @@ exception NotPossible of string let commaTrail = Layout.SepFinal (",", Reason_syntax_util.TrailingCommaMarker.string) let commaSep = Layout.Sep (",") +let expr_type (expr: Parsetree.expression) = + match expr.pexp_desc with + | Pexp_unreachable -> "Pexp_unreachable" + | Pexp_extension _ -> "Pexp_extension" + | Pexp_ident _ -> "Pexp_ident" + (* x + M.x + *) + | Pexp_constant _ -> "Pexp_constant" + (* 1, 'a', "true", 1.0, 1l, 1L, 1n *) + | Pexp_let _ -> "Pexp_let" + (* let P1 = E1 and ... and Pn = EN in E (flag = Nonrecursive) + let rec P1 = E1 and ... and Pn = EN in E (flag = Recursive) + *) + | Pexp_function _ -> "Pexp_function" + (* function P1 -> E1 | ... | Pn -> En *) + | Pexp_fun _ -> "Pexp_fun" + (* fun P -> E1 (Simple, None) + fun ~l:P -> E1 (Labelled l, None) + fun ?l:P -> E1 (Optional l, None) + fun ?l:(P = E0) -> E1 (Optional l, Some E0) + + Notes: + - If E0 is provided, only Optional is allowed. + - "fun P1 P2 .. Pn -> E1" is represented as nested Pexp_fun. + - "let f P = E" is represented using Pexp_fun. + *) + | Pexp_apply _ -> "Pexp_apply" + (* E0 ~l1:E1 ... ~ln:En + li can be empty (non labeled argument) or start with '?' + (optional argument). + + Invariant: n > 0 + *) + | Pexp_match _ -> "Pexp_match" + (* match E0 with P1 -> E1 | ... | Pn -> En *) + | Pexp_try _ -> "Pexp_try" + (* try E0 with P1 -> E1 | ... | Pn -> En *) + | Pexp_tuple _ -> "Pexp_tuple" + (* (E1, ..., En) + + Invariant: n >= 2 + *) + | Pexp_construct _ -> "Pexp_construct" + (* C None + C E Some E + C (E1, ..., En) Some (Pexp_tuple[E1;...;En]) + *) + | Pexp_variant _ -> "Pexp_variant" + (* `A (None) + `A E (Some E) + *) + | Pexp_record _ -> "Pexp_record" + (* { l1=P1; ...; ln=Pn } (None) + { E0 with l1=P1; ...; ln=Pn } (Some E0) + + Invariant: n > 0 + *) + | Pexp_field _ -> "Pexp_field" + (* E.l *) + | Pexp_setfield _ -> "Pexp_setfield" + (* E1.l <- E2 *) + | Pexp_array _ -> "Pexp_array" + (* [| E1; ...; En |] *) + | Pexp_ifthenelse _ -> "Pexp_ifthenelse" + (* if E1 then E2 else E3 *) + | Pexp_sequence _ -> "Pexp_sequence" + (* E1; E2 *) + | Pexp_while _ -> "Pexp_while" + (* while E1 do E2 done *) + | Pexp_for _ -> "Pexp_for" + (* for i = E1 to E2 do E3 done (flag = Upto) + for i = E1 downto E2 do E3 done (flag = Downto) + *) + | Pexp_constraint _ -> "Pexp_constraint" + (* (E : T) *) + | Pexp_coerce _ -> "Pexp_coerce" + (* (E :> T) (None, T) + (E : T0 :> T) (Some T0, T) + *) + | Pexp_send _ -> "Pexp_send" + (* E # m *) + | Pexp_new _ -> "Pexp_new" + (* new M.c *) + | Pexp_setinstvar _ -> "Pexp_setinstvar" + (* x <- 2 *) + | Pexp_override _ -> "Pexp_override" + (* {< x1 = E1; ...; Xn = En >} *) + | Pexp_letmodule _ -> "Pexp_letmodule" + (* let module M = ME in E *) + | Pexp_letexception _ -> "Pexp_letexception" + (* let exception C in E *) + | Pexp_assert _ -> "Pexp_assert" + (* assert E + Note: "assert false" is treated in a special way by the + type-checker. *) + | Pexp_lazy _ -> "Pexp_lazy" + (* lazy E *) + | Pexp_poly _ -> "Pexp_poly" + (* Used for method bodies. + + Can only be used as the expression under Cfk_concrete + for methods (not values). *) + | Pexp_object _ -> "Pexp_object" + (* object ... end *) + | Pexp_newtype _ -> "Pexp_newtype" + (* fun (type t) -> E *) + | Pexp_pack _ -> "Pexp_pack" + (* (module ME) + + (module ME : S) is represented as + Pexp_constraint(Pexp_pack, Ptyp_package S) *) + | Pexp_open _ -> "Pexp_open" + (* M.(E) + let open M in E + let! open M in E *) + | Pexp_letop _ -> "Pexp_letop" + type ruleInfoData = { reducePrecedence: precedence; shiftPrecedence: precedence; @@ -5608,9 +5726,8 @@ let printer = object(self:'self) let layout = source_map ~loc:bindingsLoc bindingsLayout in processLetList ((extractLocationFromValBindList expr l, layout)::acc) e | Some (extension, e) -> - let layout = self#attach_std_item_attrs ~break:Layout.IfNeed ~extension [] (self#unparseExpr e) in - let inline_extension = makeList ~wrap:("[", "]") [layout] in - (expr.pexp_loc, inline_extension)::acc + let layout = self#attach_std_item_attrs ~extension [] (self#unparseExpr e) in + (expr.pexp_loc, layout)::acc | None -> (* Should really do something to prevent infinite loops here. Never allowing a top level call into letList to recurse back to @@ -6587,7 +6704,7 @@ let printer = object(self:'self) | [] -> toThis | _::_ -> makeList ~postSpace:true (List.concat [self#attributes l; [toThis]]) - method attach_std_item_attrs ?(break=Layout.Always_rec) ?(allowUncurry=true) ?extension l toThis = + method attach_std_item_attrs ?(break=Layout.IfNeed) ?(allowUncurry=true) ?extension l toThis = let l = (partitionAttributes ~allowUncurry l).stdAttrs in match extension, l with | None, [] -> toThis @@ -6597,6 +6714,7 @@ let printer = object(self:'self) | Some id -> [atom ("%" ^ id.txt)] in makeList + ~wrap:("[", "]") ~postSpace:true ~indent:0 ~break ~inline:(true, true) (extension @ List.map self#item_attribute l @ [toThis]) From d6aaa8672a51c80c85a431e72f7e297ec7d744b6 Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Sat, 8 Oct 2022 09:33:51 +0200 Subject: [PATCH 11/30] Remove case for toplevel wrapping --- src/reason-parser/reason_pprint_ast.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/reason-parser/reason_pprint_ast.ml b/src/reason-parser/reason_pprint_ast.ml index b901e2500..02b0797fe 100644 --- a/src/reason-parser/reason_pprint_ast.ml +++ b/src/reason-parser/reason_pprint_ast.ml @@ -7898,7 +7898,7 @@ let printer = object(self:'self) let layout = self#attach_std_item_attrs ~break:Layout.IfNeed ~extension stdAttrs item in - makeList ~wrap:("[", "]") ((List.map self#attribute docAttrs) @ [layout]) + makeList ((List.map self#attribute docAttrs) @ [layout]) end | Pstr_extension (e, a) -> (* Notice how extensions have attributes - but not every structure From 0fe678847f8433e8dbfdfbde3f83b4d131e22427 Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Sat, 8 Oct 2022 13:26:21 +0200 Subject: [PATCH 12/30] Remove logging --- src/reason-parser/reason_pprint_ast.ml | 132 ++----------------------- 1 file changed, 6 insertions(+), 126 deletions(-) diff --git a/src/reason-parser/reason_pprint_ast.ml b/src/reason-parser/reason_pprint_ast.ml index 02b0797fe..8090befce 100644 --- a/src/reason-parser/reason_pprint_ast.ml +++ b/src/reason-parser/reason_pprint_ast.ml @@ -70,124 +70,6 @@ exception NotPossible of string let commaTrail = Layout.SepFinal (",", Reason_syntax_util.TrailingCommaMarker.string) let commaSep = Layout.Sep (",") -let expr_type (expr: Parsetree.expression) = - match expr.pexp_desc with - | Pexp_unreachable -> "Pexp_unreachable" - | Pexp_extension _ -> "Pexp_extension" - | Pexp_ident _ -> "Pexp_ident" - (* x - M.x - *) - | Pexp_constant _ -> "Pexp_constant" - (* 1, 'a', "true", 1.0, 1l, 1L, 1n *) - | Pexp_let _ -> "Pexp_let" - (* let P1 = E1 and ... and Pn = EN in E (flag = Nonrecursive) - let rec P1 = E1 and ... and Pn = EN in E (flag = Recursive) - *) - | Pexp_function _ -> "Pexp_function" - (* function P1 -> E1 | ... | Pn -> En *) - | Pexp_fun _ -> "Pexp_fun" - (* fun P -> E1 (Simple, None) - fun ~l:P -> E1 (Labelled l, None) - fun ?l:P -> E1 (Optional l, None) - fun ?l:(P = E0) -> E1 (Optional l, Some E0) - - Notes: - - If E0 is provided, only Optional is allowed. - - "fun P1 P2 .. Pn -> E1" is represented as nested Pexp_fun. - - "let f P = E" is represented using Pexp_fun. - *) - | Pexp_apply _ -> "Pexp_apply" - (* E0 ~l1:E1 ... ~ln:En - li can be empty (non labeled argument) or start with '?' - (optional argument). - - Invariant: n > 0 - *) - | Pexp_match _ -> "Pexp_match" - (* match E0 with P1 -> E1 | ... | Pn -> En *) - | Pexp_try _ -> "Pexp_try" - (* try E0 with P1 -> E1 | ... | Pn -> En *) - | Pexp_tuple _ -> "Pexp_tuple" - (* (E1, ..., En) - - Invariant: n >= 2 - *) - | Pexp_construct _ -> "Pexp_construct" - (* C None - C E Some E - C (E1, ..., En) Some (Pexp_tuple[E1;...;En]) - *) - | Pexp_variant _ -> "Pexp_variant" - (* `A (None) - `A E (Some E) - *) - | Pexp_record _ -> "Pexp_record" - (* { l1=P1; ...; ln=Pn } (None) - { E0 with l1=P1; ...; ln=Pn } (Some E0) - - Invariant: n > 0 - *) - | Pexp_field _ -> "Pexp_field" - (* E.l *) - | Pexp_setfield _ -> "Pexp_setfield" - (* E1.l <- E2 *) - | Pexp_array _ -> "Pexp_array" - (* [| E1; ...; En |] *) - | Pexp_ifthenelse _ -> "Pexp_ifthenelse" - (* if E1 then E2 else E3 *) - | Pexp_sequence _ -> "Pexp_sequence" - (* E1; E2 *) - | Pexp_while _ -> "Pexp_while" - (* while E1 do E2 done *) - | Pexp_for _ -> "Pexp_for" - (* for i = E1 to E2 do E3 done (flag = Upto) - for i = E1 downto E2 do E3 done (flag = Downto) - *) - | Pexp_constraint _ -> "Pexp_constraint" - (* (E : T) *) - | Pexp_coerce _ -> "Pexp_coerce" - (* (E :> T) (None, T) - (E : T0 :> T) (Some T0, T) - *) - | Pexp_send _ -> "Pexp_send" - (* E # m *) - | Pexp_new _ -> "Pexp_new" - (* new M.c *) - | Pexp_setinstvar _ -> "Pexp_setinstvar" - (* x <- 2 *) - | Pexp_override _ -> "Pexp_override" - (* {< x1 = E1; ...; Xn = En >} *) - | Pexp_letmodule _ -> "Pexp_letmodule" - (* let module M = ME in E *) - | Pexp_letexception _ -> "Pexp_letexception" - (* let exception C in E *) - | Pexp_assert _ -> "Pexp_assert" - (* assert E - Note: "assert false" is treated in a special way by the - type-checker. *) - | Pexp_lazy _ -> "Pexp_lazy" - (* lazy E *) - | Pexp_poly _ -> "Pexp_poly" - (* Used for method bodies. - - Can only be used as the expression under Cfk_concrete - for methods (not values). *) - | Pexp_object _ -> "Pexp_object" - (* object ... end *) - | Pexp_newtype _ -> "Pexp_newtype" - (* fun (type t) -> E *) - | Pexp_pack _ -> "Pexp_pack" - (* (module ME) - - (module ME : S) is represented as - Pexp_constraint(Pexp_pack, Ptyp_package S) *) - | Pexp_open _ -> "Pexp_open" - (* M.(E) - let open M in E - let! open M in E *) - | Pexp_letop _ -> "Pexp_letop" - type ruleInfoData = { reducePrecedence: precedence; shiftPrecedence: precedence; @@ -5705,10 +5587,9 @@ let printer = object(self:'self) | ([], Pexp_sequence (e1, e2)) -> let e1Layout = match expression_not_immediate_extension_sugar e1 with | Some (extension, e) -> - self#attach_std_item_attrs ~extension [] - (self#unparseExpr e) + self#attach_std_item_attrs ~extension [] (self#unparseExpr e) | None -> - self#unparseExpr e1 + self#unparseExpr e1 in let loc = e1.pexp_loc in let layout = source_map ~loc e1Layout in @@ -6705,8 +6586,8 @@ let printer = object(self:'self) | _::_ -> makeList ~postSpace:true (List.concat [self#attributes l; [toThis]]) method attach_std_item_attrs ?(break=Layout.IfNeed) ?(allowUncurry=true) ?extension l toThis = - let l = (partitionAttributes ~allowUncurry l).stdAttrs in - match extension, l with + let attrs = partitionAttributes ~allowUncurry l in + match extension, attrs.stdAttrs with | None, [] -> toThis | _, _ -> let extension = match extension with @@ -7311,7 +7192,6 @@ let printer = object(self:'self) ~loc:vd.pval_loc ~layout () - | Psig_typext te -> self#type_extension te | Psig_exception ed -> @@ -7821,7 +7701,7 @@ let printer = object(self:'self) let jsxAttrNodes = List.map self#attribute jsxAttrs in makeList ~sep:(Sep " ") (jsxAttrNodes @ [layout])) | Pstr_type (_, []) -> assert false - | Pstr_type (rf, l) -> (self#type_def_list (rf, l)) + | Pstr_type (rf, l) -> (self#type_def_list (rf, l)) | Pstr_value (rf, l) -> (self#bindings (rf, l)) | Pstr_typext te -> (self#type_extension te) | Pstr_exception ed -> @@ -7896,7 +7776,7 @@ let printer = object(self:'self) in let item = self#structure_item item in let layout = - self#attach_std_item_attrs ~break:Layout.IfNeed ~extension stdAttrs item + self#attach_std_item_attrs ~extension stdAttrs item in makeList ((List.map self#attribute docAttrs) @ [layout]) end From 8155157eb70c2f9c50431a813694da9ff6e78767 Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Sat, 8 Oct 2022 13:33:17 +0200 Subject: [PATCH 13/30] Update expected output for extensions --- .../unit_tests/expected_output/extensions.re | 225 +++++++++--------- 1 file changed, 107 insertions(+), 118 deletions(-) diff --git a/formatTest/unit_tests/expected_output/extensions.re b/formatTest/unit_tests/expected_output/extensions.re index e7840e3d8..897527d80 100644 --- a/formatTest/unit_tests/expected_output/extensions.re +++ b/formatTest/unit_tests/expected_output/extensions.re @@ -13,11 +13,9 @@ let%extend x = "hi"; let x = { let%extend x = (); ignore(); - %extend - ignore(); + [%extend ignore()]; let%extend x = (); - %extend - return("hi"); + [%extend return("hi")]; }; let x = { @@ -110,222 +108,214 @@ let x = /* With two extensions, alone */ let x = { - %extend1 - try%extend2() { - | _ => () - }; + [%extend1 + try%extend2() { + | _ => () + }]; }; let x = { - %extend1 - switch%extend2 () { - | _ => () - }; + [%extend1 + switch%extend2 () { + | _ => () + }]; }; let x = { - %extend1 - if%extend2 (true) {1} else {2}; + [%extend1 if%extend2 (true) {1} else {2}]; }; let x = { - %extend1 - for%extend2 (i in 1 to 10) { - (); - }; + [%extend1 + for%extend2 (i in 1 to 10) { + (); + }]; }; let x = { - %extend1 - while%extend2 (false) { - (); - }; + [%extend1 + while%extend2 (false) { + (); + }]; }; let x = { - %extend1 - [%extend2 () => ()]; + [%extend1 [%extend2 () => ()]]; }; let x = { - %extend1 - fun%extend2 - | None => () - | Some(1) => (); + [%extend1 + fun%extend2 + | None => () + | Some(1) => ()]; }; /* With two extensions, first in sequence */ let x = { - %extend1 - try%extend2() { - | _ => () - }; - ignore(); + [%extend1 + try%extend2() { + | _ => () + }]; + ignore; }; +}; let x = { ignore(); - %extend1 - switch%extend2 () { - | _ => () - }; - ignore(); + [%extend1 + switch%extend2 () { + | _ => () + }]; + ignore; }; let x = { ignore(); - %extend1 - if%extend2 (true) {1} else {2}; + [%extend1 if%extend2 (true) {1} else {2}]; ignore(); }; -let x = { - ignore(); - %extend1 - for%extend2 (i in 1 to 10) { - (); - }; ignore(); + [%extend1 + for%extend2 (i in 1 to 10) { + (); + }]; + ignore; }; let x = { ignore(); - %extend1 - while%extend2 (false) { - (); - }; - ignore(); + [%extend1 + while%extend2 (false) { + (); + }]; + ignore; }; let x = { ignore(); - %extend1 - [%extend2 () => ()]; + [%extend1 [%extend2 () => ()]]; ignore(); }; let x = { ignore(); - %extend1 - fun%extend2 - | None => () - | Some(1) => (); + [%extend1 + fun%extend2 + | None => () + | Some(1) => ()]; }; /* With two extensions, in sequence */ let x = { ignore(); - %extend1 - try%extend2() { - | _ => () - }; - ignore(); + [%extend1 + try%extend2() { + | _ => () + }]; + ignore; }; let x = { ignore(); - %extend1 - switch%extend2 () { - | _ => () - }; - ignore(); + [%extend1 + switch%extend2 () { + | _ => () + }]; + ignore; }; let x = { ignore(); - %extend1 - if%extend2 (true) {1} else {2}; + [%extend1 if%extend2 (true) {1} else {2}]; ignore(); }; let x = { ignore(); - %extend1 - for%extend2 (i in 1 to 10) { - (); - }; - ignore(); + [%extend1 + for%extend2 (i in 1 to 10) { + (); + }]; + ignore; }; let x = { ignore(); - %extend1 - while%extend2 (false) { - (); - }; - ignore(); + [%extend1 + while%extend2 (false) { + (); + }]; + ignore; }; let x = { ignore(); - %extend1 - [%extend2 () => ()]; + [%extend1 [%extend2 () => ()]]; ignore(); }; let x = { ignore(); - %extend1 - fun%extend2 - | None => () - | Some(1) => (); - ignore(); + [%extend1 + fun%extend2 + | None => () + | Some(1) => ()]; + ignore; }; /* With two extensions, second in sequence */ let x = { ignore(); - %extend1 - try%extend2() { - | _ => () - }; + [%extend1 + try%extend2() { + | _ => () + }]; }; let x = { ignore(); - %extend1 - switch%extend2 () { - | _ => () - }; + [%extend1 + switch%extend2 () { + | _ => () + }]; }; let x = { ignore(); - %extend1 - if%extend2 (true) {1} else {2}; + [%extend1 if%extend2 (true) {1} else {2}]; }; let x = { ignore(); - %extend1 - for%extend2 (i in 1 to 10) { - (); - }; + [%extend1 + for%extend2 (i in 1 to 10) { + (); + }]; }; let x = { ignore(); - %extend1 - while%extend2 (false) { - (); - }; + [%extend1 + while%extend2 (false) { + (); + }]; }; let x = { ignore(); - %extend1 - [%extend2 () => ()]; + [%extend1 [%extend2 () => ()]]; }; let x = { ignore(); - %extend1 - fun%extend2 - | None => () - | Some(1) => (); + [%extend1 + fun%extend2 + | None => () + | Some(1) => ()]; }; let _ = @@ -339,9 +329,9 @@ let _ = /* comments in presence of extension point syntax #1938 */ let () = { /* 1. comment attached to extension */ - %defer - /* 2. comment attached to expr in extension */ - cleanup(); + [%defer + /* 2. comment attached to expr in extension */ + cleanup()]; /* 3. comment attached to next expr */ something_else(); }; @@ -351,9 +341,9 @@ let () = { /* random let binding */ let x = 1; /* 1. comment attached to extension */ - %defer - /* 2. comment attached to expr in extension */ - cleanup(); + [%defer + /* 2. comment attached to expr in extension */ + cleanup()]; /* 3. comment attached to next expr */ something_else(); }; @@ -367,8 +357,7 @@ let work = () => { }; /** header */ -%raw -"console.log(42)"; +[%raw "console.log(42)"]; /* https://github.com/facebook/reason/issues/2032 */ let predicate = From 40a85d44a9996595e9508e7881423eb20ba506b8 Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Sat, 29 Oct 2022 23:18:13 +0200 Subject: [PATCH 14/30] Revert change on removing args --- src/reason-parser/reason_pprint_ast.ml | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/reason-parser/reason_pprint_ast.ml b/src/reason-parser/reason_pprint_ast.ml index 8090befce..b0c3b4a19 100644 --- a/src/reason-parser/reason_pprint_ast.ml +++ b/src/reason-parser/reason_pprint_ast.ml @@ -5594,9 +5594,6 @@ let printer = object(self:'self) let loc = e1.pexp_loc in let layout = source_map ~loc e1Layout in processLetList ((loc, layout)::acc) e2 - | ([], Pexp_apply (e, _)) -> - let layout = self#attach_std_item_attrs [] (self#unparseExpr e) in - (expr.pexp_loc, layout)::acc | _ -> let expr = { expr with pexp_attributes = (arityAttrs @ stdAttrs @ jsxAttrs) } in From 25df70eb66ab41d39572680b82437acb0cbb5dbb Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Sat, 29 Oct 2022 23:24:11 +0200 Subject: [PATCH 15/30] Don't copy node_modules and js into _build dir --- dune | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dune b/dune index 4a28cb876..4e1cfd734 100644 --- a/dune +++ b/dune @@ -1 +1 @@ -(data_only_dirs node_modules js) +(dirs :standard \ node_modules js) From b4a3d03e305e66c293d92af050ebc9340c66b1e2 Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Wed, 2 Nov 2022 18:39:32 +0100 Subject: [PATCH 16/30] Remove wrapping when there's no extension --- src/reason-parser/reason_pprint_ast.ml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/reason-parser/reason_pprint_ast.ml b/src/reason-parser/reason_pprint_ast.ml index b0c3b4a19..0a7ea1be9 100644 --- a/src/reason-parser/reason_pprint_ast.ml +++ b/src/reason-parser/reason_pprint_ast.ml @@ -3772,7 +3772,7 @@ let printer = object(self:'self) | Simple itm, false -> itm - method unparseResolvedRule = function + method unparseResolvedRule = function | LayoutNode layoutNode -> layoutNode | InfixTree _ as infixTree -> formatComputedInfixChain (computeInfixChain infixTree) @@ -6587,12 +6587,12 @@ let printer = object(self:'self) match extension, attrs.stdAttrs with | None, [] -> toThis | _, _ -> - let extension = match extension with - | None -> [] - | Some id -> [atom ("%" ^ id.txt)] + let (extension, wrap) = match extension with + | None -> ([], ("", "")) + | Some id -> ([atom ("%" ^ id.txt)], ("[", "]")) in makeList - ~wrap:("[", "]") + ~wrap ~postSpace:true ~indent:0 ~break ~inline:(true, true) (extension @ List.map self#item_attribute l @ [toThis]) @@ -7765,7 +7765,7 @@ let printer = object(self:'self) | Pstr_attribute a -> self#floating_attribute a | Pstr_extension ((extension, PStr [item]), attrs) -> begin match item.pstr_desc with - (* In case of bindings, the extension gets inlined `let%lwt a = 1` *) + (* In case of a value, the extension gets inlined `let%lwt a = 1` *) | Pstr_value (rf, l) -> self#bindings ~extension (rf, l) | _ -> let {stdAttrs; docAttrs} = From 8aeda675de02adc26d6e218db2eb501369533c0f Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Wed, 2 Nov 2022 19:10:29 +0100 Subject: [PATCH 17/30] Always break on attributes (but not on extensions) --- .../unit_tests/expected_output/extensions.re | 4 ++++ formatTest/unit_tests/input/extensions.re | 4 ++++ src/reason-parser/reason_pprint_ast.ml | 14 +++++++------- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/formatTest/unit_tests/expected_output/extensions.re b/formatTest/unit_tests/expected_output/extensions.re index 897527d80..8062bc7cc 100644 --- a/formatTest/unit_tests/expected_output/extensions.re +++ b/formatTest/unit_tests/expected_output/extensions.re @@ -366,3 +366,7 @@ let predicate = : fun%extend | None => false | Some(exn) => predicate(exn); + +/* Attributes shoudn't be inlined and always break */ +[@warning "-8"] +let a = 3; diff --git a/formatTest/unit_tests/input/extensions.re b/formatTest/unit_tests/input/extensions.re index 550bbbffe..3c30a37c1 100644 --- a/formatTest/unit_tests/input/extensions.re +++ b/formatTest/unit_tests/input/extensions.re @@ -337,3 +337,7 @@ let predicate = (fun%extend | None => false | Some(exn) => predicate(exn)); + +/* Attributes shoudn't be inlined and always break */ +[@warning "-8"] +let a = 3; diff --git a/src/reason-parser/reason_pprint_ast.ml b/src/reason-parser/reason_pprint_ast.ml index 0a7ea1be9..a778e8d27 100644 --- a/src/reason-parser/reason_pprint_ast.ml +++ b/src/reason-parser/reason_pprint_ast.ml @@ -6586,15 +6586,15 @@ let printer = object(self:'self) let attrs = partitionAttributes ~allowUncurry l in match extension, attrs.stdAttrs with | None, [] -> toThis - | _, _ -> - let (extension, wrap) = match extension with - | None -> ([], ("", "")) - | Some id -> ([atom ("%" ^ id.txt)], ("[", "]")) - in + | Some id, _ -> makeList - ~wrap + ~wrap:("[", "]") ~postSpace:true ~indent:0 ~break ~inline:(true, true) - (extension @ List.map self#item_attribute l @ [toThis]) + ([atom ("%" ^ id.txt)] @ List.map self#item_attribute l @ [toThis]) + | None, _ -> + makeList + ~postSpace:true ~indent:0 ~break:Always ~inline:(true, true) + (List.map self#item_attribute l @ [toThis]) method exception_declaration ed = let pcd_name = ed.pext_name in From 95d70518c9121e2f073ac451ad1dc2f6a920e74f Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Thu, 3 Nov 2022 14:49:30 +0100 Subject: [PATCH 18/30] Separate labelled argument and list argument --- src/reason-parser/reason_pprint_ast.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/reason-parser/reason_pprint_ast.ml b/src/reason-parser/reason_pprint_ast.ml index a778e8d27..9441bb44a 100644 --- a/src/reason-parser/reason_pprint_ast.ml +++ b/src/reason-parser/reason_pprint_ast.ml @@ -4799,7 +4799,7 @@ let printer = object(self:'self) } -> let modIdent = source_map ~loc:m1.pmod_loc (self#simple_module_expr m1) in let name = if prefix <> "" then - makeList ~postSpace:true[atom prefix; modIdent] + makeList ~postSpace:true [atom prefix; modIdent] else modIdent in let arg = source_map ~loc:m2.pmod_loc (self#simple_module_expr ~hug:true m2) in From 942e843e2028aa61741c3ee48121c4797a6358ff Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Thu, 3 Nov 2022 14:49:46 +0100 Subject: [PATCH 19/30] Always break on module expressions --- src/reason-parser/reason_pprint_ast.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/reason-parser/reason_pprint_ast.ml b/src/reason-parser/reason_pprint_ast.ml index 9441bb44a..70c44c19c 100644 --- a/src/reason-parser/reason_pprint_ast.ml +++ b/src/reason-parser/reason_pprint_ast.ml @@ -7550,7 +7550,7 @@ let printer = object(self:'self) s in makeList - ~break:Layout.IfNeed + ~break:Layout.Always ~inline:(true, false) ~wrap ~postSpace:true From 5a5bdb29e947284e460f0cc037b576bf5e4b8c87 Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Thu, 3 Nov 2022 14:50:00 +0100 Subject: [PATCH 20/30] Abstract module_binding let --- src/reason-parser/reason_pprint_ast.ml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/reason-parser/reason_pprint_ast.ml b/src/reason-parser/reason_pprint_ast.ml index 70c44c19c..c3cf6939e 100644 --- a/src/reason-parser/reason_pprint_ast.ml +++ b/src/reason-parser/reason_pprint_ast.ml @@ -7705,10 +7705,10 @@ let printer = object(self:'self) self#exception_declaration { ed.ptyexn_constructor with pext_attributes = ed.ptyexn_attributes @ ed.ptyexn_constructor.pext_attributes} - | Pstr_module x -> - let bindingName = atom ~loc:x.pmb_name.loc (moduleIdent x.pmb_name) in - self#attach_std_item_attrs x.pmb_attributes @@ - self#let_module_binding "module" bindingName x.pmb_expr + | Pstr_module binding -> + let bindingName = atom ~loc:binding.pmb_name.loc (moduleIdent binding.pmb_name) in + let module_binding = self#let_module_binding "module" bindingName binding.pmb_expr in + self#attach_std_item_attrs binding.pmb_attributes module_binding | Pstr_open od -> self#attach_std_item_attrs od.popen_attributes @@ makeList ~postSpace:true [ From 98da6b13a3aa7ffc899154a511e89116b0bd1a08 Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Thu, 3 Nov 2022 20:15:47 +0100 Subject: [PATCH 21/30] Break always when there's more than one structure inside attributes --- src/reason-parser/reason_pprint_ast.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/reason-parser/reason_pprint_ast.ml b/src/reason-parser/reason_pprint_ast.ml index c3cf6939e..e7c963b93 100644 --- a/src/reason-parser/reason_pprint_ast.ml +++ b/src/reason-parser/reason_pprint_ast.ml @@ -6520,7 +6520,7 @@ let printer = object(self:'self) | PStr [itm] -> makeList ~break ~wrap ~pad [self#structure_item itm] | PStr (_::_ as items) -> let rows = List.map self#structure_item items in - makeList ~wrap ~break ~pad ~postSpace ~sep:(Layout.Sep ";") rows + makeList ~wrap ~break:Layout.Always ~pad ~postSpace ~sep:(Layout.Sep ";") rows | PTyp x -> let wrap = wrap_prefix ":" wrap in makeList ~wrap ~break ~pad [self#core_type x] From 3fb5d1d96c0706b0c705a9c37e69c4c0911cdf26 Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Thu, 3 Nov 2022 20:50:15 +0100 Subject: [PATCH 22/30] Break when extension contain attributes --- src/reason-parser/reason_pprint_ast.ml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/reason-parser/reason_pprint_ast.ml b/src/reason-parser/reason_pprint_ast.ml index e7c963b93..29181d2f7 100644 --- a/src/reason-parser/reason_pprint_ast.ml +++ b/src/reason-parser/reason_pprint_ast.ml @@ -6517,10 +6517,11 @@ let printer = object(self:'self) let postSpace = true in match e with | PStr [] -> atom ("[" ^ ppxToken ^ ppxId.txt ^ "]") - | PStr [itm] -> makeList ~break ~wrap ~pad [self#structure_item itm] + | PStr [itm] -> + makeList ~break ~wrap ~pad [self#structure_item itm] | PStr (_::_ as items) -> let rows = List.map self#structure_item items in - makeList ~wrap ~break:Layout.Always ~pad ~postSpace ~sep:(Layout.Sep ";") rows + makeList ~wrap ~break ~pad ~postSpace ~sep:(Layout.Sep ";") rows | PTyp x -> let wrap = wrap_prefix ":" wrap in makeList ~wrap ~break ~pad [self#core_type x] @@ -6582,14 +6583,14 @@ let printer = object(self:'self) | [] -> toThis | _::_ -> makeList ~postSpace:true (List.concat [self#attributes l; [toThis]]) - method attach_std_item_attrs ?(break=Layout.IfNeed) ?(allowUncurry=true) ?extension l toThis = + method attach_std_item_attrs ?(allowUncurry=true) ?extension l toThis = let attrs = partitionAttributes ~allowUncurry l in match extension, attrs.stdAttrs with | None, [] -> toThis | Some id, _ -> makeList ~wrap:("[", "]") - ~postSpace:true ~indent:0 ~break ~inline:(true, true) + ~postSpace:true ~indent:0 ~break:Layout.IfNeed ~inline:(true, true) ([atom ("%" ^ id.txt)] @ List.map self#item_attribute l @ [toThis]) | None, _ -> makeList @@ -7763,6 +7764,9 @@ let printer = object(self:'self) ~comments:self#comments items) | Pstr_attribute a -> self#floating_attribute a + | Pstr_extension ((_extension, PStr []) as e, attrs) -> + (* Extension with attributes and without any PStr gets printed inline *) + self#attach_std_attrs attrs (self#item_extension e) | Pstr_extension ((extension, PStr [item]), attrs) -> begin match item.pstr_desc with (* In case of a value, the extension gets inlined `let%lwt a = 1` *) From c3d7faafdf2b5339bdbc237b7a31fab7bb4e8bd7 Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Thu, 3 Nov 2022 20:58:36 +0100 Subject: [PATCH 23/30] Fix always break on more than one item --- src/reason-parser/reason_pprint_ast.ml | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/reason-parser/reason_pprint_ast.ml b/src/reason-parser/reason_pprint_ast.ml index 29181d2f7..f8df36e6c 100644 --- a/src/reason-parser/reason_pprint_ast.ml +++ b/src/reason-parser/reason_pprint_ast.ml @@ -6512,34 +6512,33 @@ let printer = object(self:'self) method payload ppxToken ppxId e = let wrap = ("[" ^ ppxToken ^ ppxId.txt, "]") in let wrap_prefix str (x,y) = (x^str, y) in - let break = Layout.IfNeed in let pad = (true, false) in let postSpace = true in match e with | PStr [] -> atom ("[" ^ ppxToken ^ ppxId.txt ^ "]") | PStr [itm] -> - makeList ~break ~wrap ~pad [self#structure_item itm] + makeList ~break:Layout.IfNeed ~wrap ~pad [self#structure_item itm] | PStr (_::_ as items) -> let rows = List.map self#structure_item items in - makeList ~wrap ~break ~pad ~postSpace ~sep:(Layout.Sep ";") rows + makeList ~wrap ~break:Layout.Always ~pad ~postSpace ~sep:(Layout.Sep ";") rows | PTyp x -> let wrap = wrap_prefix ":" wrap in - makeList ~wrap ~break ~pad [self#core_type x] + makeList ~wrap ~break:Layout.IfNeed ~pad [self#core_type x] (* Signatures in attributes were added recently *) | PSig [] -> atom ("[" ^ ppxToken ^ ppxId.txt ^ ":]") | PSig [x] -> let wrap = wrap_prefix ":" wrap in - makeList ~break ~wrap ~pad [self#signature_item x] + makeList ~break:Layout.IfNeed ~wrap ~pad [self#signature_item x] | PSig items -> let wrap = wrap_prefix ":" wrap in let rows = List.map self#signature_item items in - makeList ~wrap ~break ~pad ~postSpace ~sep:(Layout.Sep ";") rows + makeList ~wrap ~break:Layout.IfNeed ~pad ~postSpace ~sep:(Layout.Sep ";") rows | PPat (x, None) -> let wrap = wrap_prefix "?" wrap in - makeList ~wrap ~break ~pad [self#pattern_at_least_as_simple_as_alias_or_or x] + makeList ~wrap ~break:Layout.IfNeed ~pad [self#pattern_at_least_as_simple_as_alias_or_or x] | PPat (x, Some e) -> let wrap = wrap_prefix "?" wrap in - makeList ~wrap ~break ~pad ~postSpace [ + makeList ~wrap ~break:Layout.IfNeed ~pad ~postSpace [ self#pattern_at_least_as_simple_as_alias_or_or x; label ~space:true (atom "when") (self#unparseExpr e) ] @@ -7764,9 +7763,9 @@ let printer = object(self:'self) ~comments:self#comments items) | Pstr_attribute a -> self#floating_attribute a - | Pstr_extension ((_extension, PStr []) as e, attrs) -> - (* Extension with attributes and without any PStr gets printed inline *) - self#attach_std_attrs attrs (self#item_extension e) + | Pstr_extension ((_extension, PStr []) as extension, attrs) -> + (* Extension with attributes and without PStr gets printed inline *) + self#attach_std_attrs attrs (self#item_extension extension) | Pstr_extension ((extension, PStr [item]), attrs) -> begin match item.pstr_desc with (* In case of a value, the extension gets inlined `let%lwt a = 1` *) From cf9ce95b8d61d02de535305b4f8294c9fddd1f8b Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Thu, 3 Nov 2022 21:55:17 +0100 Subject: [PATCH 24/30] Always_rc on modexpr --- src/reason-parser/reason_pprint_ast.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/reason-parser/reason_pprint_ast.ml b/src/reason-parser/reason_pprint_ast.ml index f8df36e6c..57b513a3d 100644 --- a/src/reason-parser/reason_pprint_ast.ml +++ b/src/reason-parser/reason_pprint_ast.ml @@ -7550,7 +7550,7 @@ let printer = object(self:'self) s in makeList - ~break:Layout.Always + ~break:Layout.Always_rec ~inline:(true, false) ~wrap ~postSpace:true From c0cb1ab417c4a17e4b6dd5598381dcc686b7b6c5 Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Tue, 8 Nov 2022 15:21:40 +0100 Subject: [PATCH 25/30] Ensure module with one structure_item gets formated rec --- src/reason-parser/reason_pprint_ast.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/reason-parser/reason_pprint_ast.ml b/src/reason-parser/reason_pprint_ast.ml index 57b513a3d..87a36bfb8 100644 --- a/src/reason-parser/reason_pprint_ast.ml +++ b/src/reason-parser/reason_pprint_ast.ml @@ -7432,7 +7432,7 @@ let printer = object(self:'self) (source_map ~loc:x.pmty_loc (makeList - ~break:(if List.length s > 1 then Always else IfNeed) + ~break:Always_rec ~inline:(true, true) ~postSpace:true ~sep:(SepFinal (";", ";")) From 50d663495a54acf88c9890fea9ea018446c7ffd2 Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Tue, 8 Nov 2022 15:30:25 +0100 Subject: [PATCH 26/30] Remove closed } in extension snapshot --- formatTest/unit_tests/expected_output/extensions.re | 1 - 1 file changed, 1 deletion(-) diff --git a/formatTest/unit_tests/expected_output/extensions.re b/formatTest/unit_tests/expected_output/extensions.re index 8062bc7cc..54935d432 100644 --- a/formatTest/unit_tests/expected_output/extensions.re +++ b/formatTest/unit_tests/expected_output/extensions.re @@ -160,7 +160,6 @@ let x = { ignore; }; -}; let x = { ignore(); [%extend1 From ca939a13d46ded78a399a5e1665662e4d033323c Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Tue, 8 Nov 2022 17:11:32 +0100 Subject: [PATCH 27/30] Update trailing formatting --- formatTest/typeCheckedTests/expected_output/trailing.re | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/formatTest/typeCheckedTests/expected_output/trailing.re b/formatTest/typeCheckedTests/expected_output/trailing.re index 67833739a..54d783465 100644 --- a/formatTest/typeCheckedTests/expected_output/trailing.re +++ b/formatTest/typeCheckedTests/expected_output/trailing.re @@ -196,7 +196,9 @@ class extendedStack pub implementMe = (i, j) => (i, j); }; -module type HasType = {type t;}; +module type HasType = { + type t; +}; module type HasType2 = { type t; type q; From 2cab09e72e4907e8c94095494a3fb13c5075f5b2 Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Sat, 12 Nov 2022 12:43:58 +0100 Subject: [PATCH 28/30] Revert Always_rec on module type signature --- formatTest/typeCheckedTests/expected_output/trailing.re | 4 +--- src/reason-parser/reason_pprint_ast.ml | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/formatTest/typeCheckedTests/expected_output/trailing.re b/formatTest/typeCheckedTests/expected_output/trailing.re index 54d783465..67833739a 100644 --- a/formatTest/typeCheckedTests/expected_output/trailing.re +++ b/formatTest/typeCheckedTests/expected_output/trailing.re @@ -196,9 +196,7 @@ class extendedStack pub implementMe = (i, j) => (i, j); }; -module type HasType = { - type t; -}; +module type HasType = {type t;}; module type HasType2 = { type t; type q; diff --git a/src/reason-parser/reason_pprint_ast.ml b/src/reason-parser/reason_pprint_ast.ml index 87a36bfb8..57b513a3d 100644 --- a/src/reason-parser/reason_pprint_ast.ml +++ b/src/reason-parser/reason_pprint_ast.ml @@ -7432,7 +7432,7 @@ let printer = object(self:'self) (source_map ~loc:x.pmty_loc (makeList - ~break:Always_rec + ~break:(if List.length s > 1 then Always else IfNeed) ~inline:(true, true) ~postSpace:true ~sep:(SepFinal (";", ";")) From 17097b9237fa09de63ed29f5000b6522a166aa0f Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Sat, 12 Nov 2022 13:46:56 +0100 Subject: [PATCH 29/30] Update all snapshots to make tests pass --- .../expected_output/attributes.re | 10 +- .../expected_output/attributes.rei | 6 +- .../typeCheckedTests/input/attributes.re | 5 +- .../unit_tests/expected_output/extensions.re | 31 +- .../unit_tests/expected_output/syntax.re | 5 +- formatTest/unit_tests/input/extensions.re | 309 ++++++++++-------- 6 files changed, 201 insertions(+), 165 deletions(-) diff --git a/formatTest/typeCheckedTests/expected_output/attributes.re b/formatTest/typeCheckedTests/expected_output/attributes.re index 8324c5664..2f25d7945 100644 --- a/formatTest/typeCheckedTests/expected_output/attributes.re +++ b/formatTest/typeCheckedTests/expected_output/attributes.re @@ -237,7 +237,10 @@ class boxB ('a) (init: 'a) = /* To be able to put an attribute on just the return in that case, use * parens. */ -[@onBoxC x; y] +[@onBoxC + x; + y +] class boxC ('a) = [@onEntireFunction] ( fun (init: 'a) => @@ -453,10 +456,7 @@ external readFileSync2: string; /* Ensure that attributes on extensions are printed */ -[@test - [@attr] - [%%extension] -]; +[@test [@attr] [%%extension]]; external debounce: (int, [@bs.meth] unit) => unit; diff --git a/formatTest/typeCheckedTests/expected_output/attributes.rei b/formatTest/typeCheckedTests/expected_output/attributes.rei index 4c6556400..f1acc5f56 100644 --- a/formatTest/typeCheckedTests/expected_output/attributes.rei +++ b/formatTest/typeCheckedTests/expected_output/attributes.rei @@ -78,7 +78,5 @@ type ttttt = { x: int, }; -module Foo: { - [@someattr] - let foo: int => int; -}; +module Foo: {[@someattr] + let foo: int => int;}; diff --git a/formatTest/typeCheckedTests/input/attributes.re b/formatTest/typeCheckedTests/input/attributes.re index 146c7f973..c7bbca906 100644 --- a/formatTest/typeCheckedTests/input/attributes.re +++ b/formatTest/typeCheckedTests/input/attributes.re @@ -358,7 +358,10 @@ external readFileSync2 : ( ]) => string = ""; /* Ensure that attributes on extensions are printed */ -[@test [@attr] [%%extension]]; +[@test + [@attr] + [%%extension] +]; external debounce : (int, [@bs.meth] unit) => unit; diff --git a/formatTest/unit_tests/expected_output/extensions.re b/formatTest/unit_tests/expected_output/extensions.re index 54935d432..3660f1e6b 100644 --- a/formatTest/unit_tests/expected_output/extensions.re +++ b/formatTest/unit_tests/expected_output/extensions.re @@ -2,7 +2,9 @@ [%extend open M]; -[%extend module M = {}]; +[%extend + module M = {} +]; [%extend module type M = {}]; @@ -157,7 +159,7 @@ let x = { try%extend2() { | _ => () }]; - ignore; + ignore(); }; let x = { @@ -166,7 +168,7 @@ let x = { switch%extend2 () { | _ => () }]; - ignore; + ignore(); }; let x = { @@ -175,12 +177,13 @@ let x = { ignore(); }; +let x = { ignore(); [%extend1 for%extend2 (i in 1 to 10) { (); }]; - ignore; + ignore(); }; let x = { @@ -189,7 +192,7 @@ let x = { while%extend2 (false) { (); }]; - ignore; + ignore(); }; let x = { @@ -214,7 +217,7 @@ let x = { try%extend2() { | _ => () }]; - ignore; + ignore(); }; let x = { @@ -223,7 +226,7 @@ let x = { switch%extend2 () { | _ => () }]; - ignore; + ignore(); }; let x = { @@ -238,7 +241,7 @@ let x = { for%extend2 (i in 1 to 10) { (); }]; - ignore; + ignore(); }; let x = { @@ -247,7 +250,7 @@ let x = { while%extend2 (false) { (); }]; - ignore; + ignore(); }; let x = { @@ -262,7 +265,7 @@ let x = { fun%extend2 | None => () | Some(1) => ()]; - ignore; + ignore(); }; /* With two extensions, second in sequence */ @@ -329,8 +332,8 @@ let _ = let () = { /* 1. comment attached to extension */ [%defer - /* 2. comment attached to expr in extension */ - cleanup()]; + /* 2. comment attached to expr in extension */ + cleanup()]; /* 3. comment attached to next expr */ something_else(); }; @@ -341,8 +344,8 @@ let () = { let x = 1; /* 1. comment attached to extension */ [%defer - /* 2. comment attached to expr in extension */ - cleanup()]; + /* 2. comment attached to expr in extension */ + cleanup()]; /* 3. comment attached to next expr */ something_else(); }; diff --git a/formatTest/unit_tests/expected_output/syntax.re b/formatTest/unit_tests/expected_output/syntax.re index 13a8959d2..570d3d9c9 100644 --- a/formatTest/unit_tests/expected_output/syntax.re +++ b/formatTest/unit_tests/expected_output/syntax.re @@ -1,6 +1,9 @@ /* Copyright (c) 2015-present, Facebook, Inc. All rights reserved. */ -[@autoFormat let wrap = 80; let shift = 2]; +[@autoFormat + let wrap = 80; + let shift = 2 +]; Modules.run(); Polymorphism.run(); Variants.run(); diff --git a/formatTest/unit_tests/input/extensions.re b/formatTest/unit_tests/input/extensions.re index 3c30a37c1..218f02e37 100644 --- a/formatTest/unit_tests/input/extensions.re +++ b/formatTest/unit_tests/input/extensions.re @@ -1,295 +1,321 @@ - /* Extension sugar */ -%extend -open M; +[%extend open M]; -%extend -module M = {}; +[%extend module M = {}]; -%extend -module type M = {}; +[%extend module type M = {}]; type a = [%extend int]; -%extend -let x = "hi"; +let%extend x = "hi"; let x = { - %extend - let x = (); - ignore(); - %extend + let%extend x = (); ignore(); - %extend - let x = (); - %extend - return("hi"); + [%extend ignore()]; + let%extend x = (); + [%extend return("hi")]; }; let x = { - %extend - if (true) { 1 } else { 2 }; - %extend - switch (None) { - | Some(x) => assert(false) - | None => () + if%extend (true) {1} else {2}; + switch%extend (None) { + | Some(x) => assert(false) + | None => () + }; + try%extend(raise(Not_found)) { + | Not_found => () + | Invalid_argument(msg) => prerr_endline(msg) }; - %extend - try { - raise(Not_found) - } { - | Not_found => () - | Invalid_argument(msg) => prerr_endline(msg) - } }; let x = { - %extend - if (true) { 1 } else { 2 } + if%extend (true) {1} else {2}; }; let x = { - %extend - switch (None) { - | Some(x) => assert(false) - | None => () + switch%extend (None) { + | Some(x) => assert(false) + | None => () }; }; let x = { - %extend - try { - raise(Not_found) - } { - | Not_found => () - | Invalid_argument(msg) => prerr_endline(msg) - } + try%extend(raise(Not_found)) { + | Not_found => () + | Invalid_argument(msg) => prerr_endline(msg) + }; }; /* At structure level */ -try%extend () { | _ => () }; +try%extend() { +| _ => () +}; -switch%extend () { | _ => () }; +switch%extend () { +| _ => () +}; -if%extend (true) { 1 } else { 2 }; +if%extend (true) {1} else {2}; -for%extend (i in 1 to 10) { () }; +for%extend (i in 1 to 10) { + (); +}; -while%extend (false) { () }; +while%extend (false) { + (); +}; -fun%extend () => (); +[%extend () => ()]; fun%extend - | None => () - | Some(1) => (); +| None => () +| Some(1) => (); - /* In a top-level binding */ +/* In a top-level binding */ -let x = try%extend () { | _ => () }; +let x = + try%extend() { + | _ => () + }; -let x = switch%extend () { | _ => () }; +let x = + switch%extend () { + | _ => () + }; -let x = if%extend (true) { 1 } else { 2 }; +let x = if%extend (true) {1} else {2}; -let x = for%extend (i in 1 to 10) { () }; +let x = + for%extend (i in 1 to 10) { + (); + }; -let x = while%extend (false) { () }; +let x = + while%extend (false) { + (); + }; -let x = fun%extend () => (); +let x = [%extend () => ()]; -let x = fun%extend +let x = + fun%extend | None => () | Some(1) => (); - /* With two extensions, alone */ +/* With two extensions, alone */ let x = { - %extend1 - try%extend2 () { | _ => () }; + [%extend1 + try%extend2() { + | _ => () + }]; }; let x = { - %extend1 - switch%extend2 () { | _ => () }; + [%extend1 + switch%extend2 () { + | _ => () + }]; }; let x = { - %extend1 - if%extend2 (true) { 1 } else { 2 }; + [%extend1 if%extend2 (true) {1} else {2}]; }; let x = { - %extend1 - for%extend2 (i in 1 to 10) { () }; + [%extend1 + for%extend2 (i in 1 to 10) { + (); + }]; }; let x = { - %extend1 - while%extend2 (false) { () }; + [%extend1 + while%extend2 (false) { + (); + }]; }; let x = { - %extend1 - fun%extend2 () => (); + [%extend1 [%extend2 () => ()]]; }; let x = { - %extend1 - fun%extend2 - | None => () - | Some(1) => (); + [%extend1 + fun%extend2 + | None => () + | Some(1) => ()]; }; - /* With two extensions, first in sequence */ +/* With two extensions, first in sequence */ let x = { - %extend1 - try%extend2 () { | _ => () }; + [%extend1 + try%extend2() { + | _ => () + }]; ignore(); }; let x = { ignore(); - %extend1 - switch%extend2 () { | _ => () }; + [%extend1 + switch%extend2 () { + | _ => () + }]; ignore(); }; let x = { ignore(); - %extend1 - if%extend2 (true) { 1 } else { 2 }; + [%extend1 if%extend2 (true) {1} else {2}]; ignore(); }; let x = { ignore(); - %extend1 - for%extend2 (i in 1 to 10) { () }; + [%extend1 + for%extend2 (i in 1 to 10) { + (); + }]; ignore(); }; let x = { ignore(); - %extend1 - while%extend2 (false) { () }; + [%extend1 + while%extend2 (false) { + (); + }]; ignore(); }; let x = { ignore(); - %extend1 - fun%extend2 () => (); + [%extend1 [%extend2 () => ()]]; ignore(); }; let x = { ignore(); - %extend1 - fun%extend2 - | None => () - | Some(1) => (); + [%extend1 + fun%extend2 + | None => () + | Some(1) => ()]; }; - /* With two extensions, in sequence */ +/* With two extensions, in sequence */ let x = { ignore(); - %extend1 - try%extend2 () { | _ => () }; + [%extend1 + try%extend2() { + | _ => () + }]; ignore(); }; let x = { ignore(); - %extend1 - switch%extend2 () { | _ => () }; + [%extend1 + switch%extend2 () { + | _ => () + }]; ignore(); }; let x = { ignore(); - %extend1 - if%extend2 (true) { 1 } else { 2 }; + [%extend1 if%extend2 (true) {1} else {2}]; ignore(); }; let x = { ignore(); - %extend1 - for%extend2 (i in 1 to 10) { () }; + [%extend1 + for%extend2 (i in 1 to 10) { + (); + }]; ignore(); }; let x = { ignore(); - %extend1 - while%extend2 (false) { () }; + [%extend1 + while%extend2 (false) { + (); + }]; ignore(); }; let x = { ignore(); - %extend1 - fun%extend2 () => (); + [%extend1 [%extend2 () => ()]]; ignore(); }; let x = { ignore(); - %extend1 - fun%extend2 - | None => () - | Some(1) => (); + [%extend1 + fun%extend2 + | None => () + | Some(1) => ()]; ignore(); }; - /* With two extensions, second in sequence */ +/* With two extensions, second in sequence */ let x = { ignore(); - %extend1 - try%extend2 () { | _ => () }; + [%extend1 + try%extend2() { + | _ => () + }]; }; let x = { ignore(); - %extend1 - switch%extend2 () { | _ => () }; + [%extend1 + switch%extend2 () { + | _ => () + }]; }; let x = { ignore(); - %extend1 - if%extend2 (true) { 1 } else { 2 }; + [%extend1 if%extend2 (true) {1} else {2}]; }; let x = { ignore(); - %extend1 - for%extend2 (i in 1 to 10) { () }; + [%extend1 + for%extend2 (i in 1 to 10) { + (); + }]; }; let x = { ignore(); - %extend1 - while%extend2 (false) { () }; + [%extend1 + while%extend2 (false) { + (); + }]; }; let x = { ignore(); - %extend1 - fun%extend2 () => (); + [%extend1 [%extend2 () => ()]]; }; let x = { ignore(); - %extend1 - fun%extend2 - | None => () - | Some(1) => (); + [%extend1 + fun%extend2 + | None => () + | Some(1) => ()]; }; let _ = @@ -303,9 +329,9 @@ let _ = /* comments in presence of extension point syntax #1938 */ let () = { /* 1. comment attached to extension */ - %defer - /* 2. comment attached to expr in extension */ - cleanup(); + [%defer + /* 2. comment attached to expr in extension */ + cleanup()]; /* 3. comment attached to next expr */ something_else(); }; @@ -315,28 +341,31 @@ let () = { /* random let binding */ let x = 1; /* 1. comment attached to extension */ - %defer - /* 2. comment attached to expr in extension */ - cleanup(); + [%defer + /* 2. comment attached to expr in extension */ + cleanup()]; /* 3. comment attached to next expr */ something_else(); }; [%bs.raw x => x]; -let work = () => { open Syntax; let%bind name = x; name; }; +let work = () => { + open Syntax; + let%bind name = x; + name; +}; /** header */ -%raw -"console.log(42)"; +[%raw "console.log(42)"]; /* https://github.com/facebook/reason/issues/2032 */ let predicate = - predicate === Functions.alwaysTrue1 ? - defaultPredicate : - (fun%extend + predicate === Functions.alwaysTrue1 + ? defaultPredicate + : fun%extend | None => false - | Some(exn) => predicate(exn)); + | Some(exn) => predicate(exn); /* Attributes shoudn't be inlined and always break */ [@warning "-8"] From 81bb3a098e38015bddf96ae98cedc794f2dd9c9b Mon Sep 17 00:00:00 2001 From: David Sancho Moreno Date: Sat, 12 Nov 2022 14:12:57 +0100 Subject: [PATCH 30/30] Break module when is not empty, remove the one item exception --- src/reason-parser/reason_pprint_ast.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/reason-parser/reason_pprint_ast.ml b/src/reason-parser/reason_pprint_ast.ml index 57b513a3d..94c67d2e4 100644 --- a/src/reason-parser/reason_pprint_ast.ml +++ b/src/reason-parser/reason_pprint_ast.ml @@ -7432,7 +7432,7 @@ let printer = object(self:'self) (source_map ~loc:x.pmty_loc (makeList - ~break:(if List.length s > 1 then Always else IfNeed) + ~break:(if List.length s > 0 then Always else IfNeed) ~inline:(true, true) ~postSpace:true ~sep:(SepFinal (";", ";"))